1. 26 Oct, 2007 1 commit
    • unknown's avatar
      Fix for bug #31137: Assertion failed: primary_key_no == -1 || primary_key_no == 0, · d7d93cf5
      unknown authored
      file .\ha_innodb.
      
      Problem: if a partial unique key followed by a non-partial one we declare
      the second one as a primary key.
      
      Fix: sort non-partial unique keys before partial ones.
      
      
      include/my_base.h:
        Fix for bug #31137: Assertion failed: primary_key_no == -1 || primary_key_no == 0, 
        file .\ha_innodb.
          - sort unique keys that don't contain partial segments before other keys:
              set HA_KEY_HAS_PART_KEY_SEG flag for such keys in the mysql_prepare_table(),
              use it in the sort_keys();
      mysql-test/r/innodb_mysql.result:
        Fix for bug #31137: Assertion failed: primary_key_no == -1 || primary_key_no == 0, 
        file .\ha_innodb.
          - test result.
      mysql-test/r/key.result:
        Fix for bug #31137: Assertion failed: primary_key_no == -1 || primary_key_no == 0, 
        file .\ha_innodb.
          - test result.
      mysql-test/t/innodb_mysql.test:
        Fix for bug #31137: Assertion failed: primary_key_no == -1 || primary_key_no == 0, 
        file .\ha_innodb.
          - test case.
      mysql-test/t/key.test:
        Fix for bug #31137: Assertion failed: primary_key_no == -1 || primary_key_no == 0, 
        file .\ha_innodb.
          - test case.
      sql/sql_table.cc:
        Fix for bug #31137: Assertion failed: primary_key_no == -1 || primary_key_no == 0, 
        file .\ha_innodb.
          - sort unique keys that don't contain partial segments before other keys:
              set HA_KEY_HAS_PART_KEY_SEG flag for such keys in the mysql_prepare_table(),
              use it in the sort_keys();
      sql/structs.h:
        Fix for bug #31137: Assertion failed: primary_key_no == -1 || primary_key_no == 0, 
        file .\ha_innodb.
          - sort unique keys that don't contain partial segments before other keys:
              set HA_KEY_HAS_PART_KEY_SEG flag for such keys in the mysql_prepare_table(),
              use it in the sort_keys();
      d7d93cf5
  2. 25 Oct, 2007 2 commits
  3. 24 Oct, 2007 6 commits
  4. 23 Oct, 2007 7 commits
  5. 22 Oct, 2007 2 commits
  6. 19 Oct, 2007 4 commits
  7. 18 Oct, 2007 4 commits
  8. 17 Oct, 2007 6 commits
    • unknown's avatar
      Bug #29804 UDF parameters don't contain correct string length · 367fc73e
      unknown authored
          
      Previously, UDF *_init functions were passed constant strings with erroneous lengths. The length came from the containing variable's size, not the length of the value itself.
          
      Now the *_init functions get the constant as a null terminated string with the correct length supplied too.
      
      
      mysql-test/r/udf.result:
        Test case to check constants passed UDFs.
      mysql-test/t/udf.test:
        Test case to check constants passed UDFs.
      sql/item_func.cc:
        UDF _init functions are now passed the length of the constants, rather than the max length of the var containing the constant.
      sql/udf_example.c:
        Added check_const_len functions. The check_const_len_init functions checks that lengths of constants are correctly passed.
      sql/udf_example.def:
        Add new example functions to windows dll export list.
      367fc73e
    • unknown's avatar
      Fix syntax error build problem on Windows (variable was defined · a634d1bf
      unknown authored
      in middle of block)
      
      
      libmysql/libmysql.c:
        Fix syntax error - don't define new variables in the middle of a block.
        
        Also, use size_t instead of uint to avoid unnecessary casting.
      a634d1bf
    • unknown's avatar
      Fix for bug #31207: Test "join_nested" shows different strategy on IA64 · ce8bf087
      unknown authored
      CPUs / Intel's ICC compile
      
      The bug is a combination of two problems:
      
      1. IA64/ICC MySQL binaries use glibc's qsort(), not the one in mysys.
      
      2. The order relation implemented by join_tab_cmp() is not transitive,
      i.e. it is possible to choose such a, b and c that (a < b) && (b < c)
      but (c < a). This implies that result of a sort using the relation
      implemented by join_tab_cmp() depends on the order in which
      elements are compared, i.e. the result is implementation-specific. Since
      choose_plan() uses qsort() to pre-sort the
      join tables using join_tab_cmp() as a compare function, the results of
      the sorting may vary depending on qsort() implementation.
      
      It is neither possible nor important to implement a better ordering
      algorithm in join_tab_cmp(). Therefore the only way to fix it is to
      force our own qsort() to be used by renaming it to my_qsort(), so we don't depend
      on linker to decide that.
      
      This patch also "fixes" bug #20530: qsort redefinition violates the
      standard.
      
      
      include/my_sys.h:
        Renamed qsort() and qsort2() to my_qsort() and my_qsort2(). Since
        previously we relied on stdlib.h to provide a declaration for qsort(), a
        separate declaration for my_qsort() is now required.
      libmysql/Makefile.shared:
        Added mf_qsort.c to libmysql, since my_lib.c now uses my_qsort() instead of qsort().
      myisam/ft_boolean_search.c:
        Replaced qsort2() with my_qsort2().
      myisam/ft_nlq_search.c:
        Replaced qsort2() with my_qsort2().
      myisam/myisampack.c:
        Replaced qsort() with my_qsort().
      myisam/sort.c:
        Replaced qsort2() with my_qsort2().
      mysys/mf_keycache.c:
        Replaced qsort() with my_qsort().
      mysys/mf_qsort.c:
        Renamed qsort() to my_qsort() and qsort2() to my_qsort2().
      mysys/mf_sort.c:
        Replaced qsort2() with my_qsort2().
      mysys/my_lib.c:
        Replaced qsort() with my_qsort().
      mysys/queues.c:
        Replaced qsort2() with my_qsort2().
      sql/item_cmpfunc.cc:
        Replaced qsort2() with my_qsort2().
      sql/item_cmpfunc.h:
        Replaced qsort2() with my_qsort2().
      sql/opt_range.cc:
        Replaced qsort() with my_qsort().
      sql/records.cc:
        Replaced qsort() with my_qsort().
      sql/sql_acl.cc:
        Replaced qsort() with my_qsort().
      sql/sql_array.h:
        Replaced qsort() with my_qsort().
      sql/sql_help.cc:
        Replaced qsort() with my_qsort().
      sql/sql_select.cc:
        Replaced qsort() with my_qsort().
      sql/examples/ha_tina.cc:
        Replaced qsort() with my_qsort().
      sql/sql_table.cc:
        Replaced qsort() with my_qsort().
      ce8bf087
    • unknown's avatar
      Fix for bug#31615: crash after set names ucs2 collate xxx · e8adc3f7
      unknown authored
      Problem: currently, UCS-2 cannot be used as a client character set.
      
      Fix: raise an error if one attempts to set it to USC-2.
      
      
      mysql-test/r/ctype_ucs.result:
        Fix for bug#31615: crash after set names ucs2 collate xxx
          - test result.
      mysql-test/t/ctype_ucs.test:
        Fix for bug#31615: crash after set names ucs2 collate xxx
          - test case.
      sql/set_var.cc:
        Fix for bug#31615: crash after set names ucs2 collate xxx
          - raise an error if one is going to set character_set_client to UCS-2.
      sql/set_var.h:
        Fix for bug#31615: crash after set names ucs2 collate xxx
          - raise an error if one is going to set character_set_client to UCS-2.
      e8adc3f7
    • unknown's avatar
      Merge polly.(none):/home/kaa/src/maint/mysql-4.1-maint · d73ab388
      unknown authored
      into  polly.(none):/home/kaa/src/maint/mysql-5.0-maint
      
      
      mysql-test/r/repair.result:
        Auto merged
      mysql-test/t/repair.test:
        Auto merged
      d73ab388
    • unknown's avatar
  9. 16 Oct, 2007 6 commits
    • unknown's avatar
      Fixed broken call to my_error · 42b64243
      unknown authored
      
      sql/sql_yacc.yy:
        Fixed error message to use char*, not LEX_STRING
      42b64243
    • unknown's avatar
      Merge malff@bk-internal.mysql.com:/home/bk/mysql-5.0-runtime · 72af57b8
      unknown authored
      into  lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.0-28318-rework
      
      
      72af57b8
    • unknown's avatar
      Implementing code review comments · 28ef3b2a
      unknown authored
      
      mysql-test/r/sp.result:
        Added tests for coverage
      mysql-test/t/sp.test:
        Added tests for coverage
      sql/sql_udf.cc:
        Code cleanup
      28ef3b2a
    • unknown's avatar
      Merge polly.(none):/home/kaa/src/maint/mysql-4.1-maint · 9ef7b5f6
      unknown authored
      into  polly.(none):/home/kaa/src/maint/mysql-5.0-maint
      
      
      myisam/sort.c:
        Auto merged
      mysql-test/r/repair.result:
        Auto merged
      mysql-test/t/repair.test:
        Auto merged
      9ef7b5f6
    • unknown's avatar
      Merge polly.(none):/home/kaa/src/maint/bug31174/my41-bug31174 · 99a7866a
      unknown authored
      into  polly.(none):/home/kaa/src/maint/mysql-4.1-maint
      
      
      99a7866a
    • unknown's avatar
      Bug#28318 (CREATE FUNCTION (UDF) requires a schema) -- part II · f1d7a96b
      unknown authored
      The root cause of the issue was that the CREATE FUNCTION grammar,
      for User Defined Functions, was using the sp_name rule.
      The sp_name rule is intended for fully qualified stored procedure names,
      like either ident.ident, or just ident but with a default database
      implicitly selected.
      
      A UDF does not have a fully qualified name, only a name (ident), and should
      not use the sp_name grammar fragment during parsing.
      
      The fix is to re-organize the CREATE FUNCTION grammar, to better separate:
      - creating UDF (no definer, can have AGGREGATE, simple ident)
      - creating Stored Functions (definer, no AGGREGATE, fully qualified name)
      
      With the test case provided, another issue was exposed which is also fixed:
      the DROP FUNCTION statement was using sp_name and also failing when no database
      is implicitly selected, when droping UDF functions.
      The fix is also to change the grammar so that DROP FUNCTION works with
      both the ident.ident syntax (to drop a stored function), or just the ident
      syntax (to drop either a UDF or a Stored Function, in the current database)
      
      
      mysql-test/r/sp-error.result:
        Adjust test results
      mysql-test/r/udf.result:
        Adjust test results
      mysql-test/t/sp-error.test:
        Adjust test results
      mysql-test/t/udf.test:
        Adjust test results
      sql/sql_parse.cc:
        CREATE UDF FUNCTION does not use a fully qualified name.
      sql/sql_yacc.yy:
        Fix grammar for CREATE / DROP FUNCTION, FOR udf
        Improve error messages for select no_such_function()
      f1d7a96b
  10. 15 Oct, 2007 2 commits