1. 25 May, 2009 1 commit
    • Georgi Kodinov's avatar
      Bug #44399 : crash with statement using TEXT columns, aggregates, GROUP BY, and · 1b3c88e5
      Georgi Kodinov authored
      HAVING
                  
      When calculating GROUP BY the server caches some expressions. It does
      that by allocating a string slot (Item_copy_string) and assigning the 
      value of the expression to it. This effectively means that the result
      type of the expression can be changed from whatever it was to a string.
      As this substitution takes place after the compile-time result type 
      calculation for IN but before the run-time type calculations, 
      it causes the type calculations in the IN function done at run time 
      to get unexpected results different from what was prepared at compile time.
                        
      In the CASE ... WHEN ... THEN ... statement there was a similar problem
      and it was solved by artificially adding a STRING argument to the set of 
      types of the IN/CASE arguments at compile time, so if any of the 
      arguments of the CASE function changes its type to a string it will 
      still be covered by the information prepared at compile time.
      
      mysql-test/include/mix1.inc:
        Bug #44399: extended the test to cover the different types
      mysql-test/r/func_in.result:
        Bug #44399: test case
      mysql-test/r/innodb_mysql.result:
        Bug #44399: extended the test to cover the different types
      mysql-test/t/func_in.test:
        Bug #44399: test case
      sql/item.cc:
        Bug #44399: Implement typed caching for GROUP BY
      sql/item.h:
        Bug #44399: Implement typed caching for GROUP BY
      sql/item_cmpfunc.cc:
        Bug #44399: remove the special case
      sql/sql_select.cc:
        Bug #44399: Implement typed caching for GROUP BY
      1b3c88e5
  2. 23 May, 2009 1 commit
  3. 22 May, 2009 6 commits
    • Luis Soares's avatar
      BUG#41725: upmerge: 5.0-bt --> 5.1-bt · d4569083
      Luis Soares authored
      d4569083
    • Luis Soares's avatar
      BUG#41725: slave crashes when inserting into temporary table after · a393195c
      Luis Soares authored
      stop/start slave
            
      When stopping and restarting the slave while it is replicating
      temporary tables, the server would crash or raise an assertion
      failure. This was due to the fact that although temporary tables are
      saved between slave threads restart, the reference to the thread in
      use (table->in_use) was not being properly updated when the restart
      happened (it would still reference the old/invalid thread instead of
      the new one).
            
      This patch addresses this issue by resetting the reference to the new
      slave thread on slave thread restart.
      
      mysql-test/r/rpl_temporary.result:
        Result file.
      mysql-test/t/rpl_temporary.test:
        Test case that checks that both failures go away.
      sql/slave.cc:
        Changed slave.cc to reset sql_thd reference in temporary tables.
      a393195c
    • Patrick Crews's avatar
      merge · 47ec7237
      Patrick Crews authored
      47ec7237
    • Patrick Crews's avatar
      merge 5.0-> 5.1 · b39f4f69
      Patrick Crews authored
      b39f4f69
    • Patrick Crews's avatar
      Bug#40465 - mysqldump.test does no checking of dump or restore · f6755d15
      Patrick Crews authored
      Created new .test file - mysqldump_restore that does test restore from mysqldump
      output for a limited number of basic cases.
      Create new .inc file - mysqldump.inc - renames original table and uses mysqldump
      output to recreate the table, then uses diff_tables.inc to compare the two tables.
      Backported include/diff_tables.inc to facilitate this testing.
      New patch incorporating review feedback prior to push.
      
      mysqldump.test - removed redundant call to include/have_log_bin.inc (was used twice in the test!)
      f6755d15
    • Gleb Shchepa's avatar
      Bug #42778: delete order by null global variable causes · 953aa034
      Gleb Shchepa authored
                  assertion .\filesort.cc, line 797
      
      Minor fix to test case (embedded server failure).
      953aa034
  4. 21 May, 2009 15 commits
    • Gleb Shchepa's avatar
      Bug #42778: delete order by null global variable causes · 0f49ffc4
      Gleb Shchepa authored
                  assertion .\filesort.cc, line 797
      
      A query with the "ORDER BY @@some_system_variable" clause,
      where @@some_system_variable is NULL, causes assertion
      failure in the filesort procedures.
      
      The reason of the failure is in the value of
      Item_func_get_system_var::maybe_null: it was unconditionally
      set to false even if the value of a variable was NULL.
      
      
      mysql-test/r/variables.result:
        Added test case for bug #42778.
      mysql-test/suite/sys_vars/r/innodb_data_home_dir_basic.result:
        Updated test case for bug #42778:
        system variables were NOT NULL, now they are nullable.
      mysql-test/suite/sys_vars/r/innodb_flush_method_basic.result:
        Updated test case for bug #42778:
        system variables were NOT NULL, now they are nullable.
      mysql-test/suite/sys_vars/r/rpl_init_slave_func.result:
        Updated test case for bug #42778:
        system variables were NOT NULL, now they are nullable.
      mysql-test/suite/sys_vars/r/ssl_capath_basic.result:
        Updated test case for bug #42778:
        system variables were NOT NULL, now they are nullable.
      mysql-test/suite/sys_vars/r/ssl_cipher_basic.result:
        Updated test case for bug #42778:
        system variables were NOT NULL, now they are nullable.
      mysql-test/suite/sys_vars/t/innodb_data_home_dir_basic.test:
        Updated test case for bug #42778:
        system variables were NOT NULL, now they are nullable.
      mysql-test/suite/sys_vars/t/innodb_flush_method_basic.test:
        Updated test case for bug #42778:
        system variables were NOT NULL, now they are nullable.
      mysql-test/suite/sys_vars/t/ssl_capath_basic.test:
        Updated test case for bug #42778:
        system variables were NOT NULL, now they are nullable.
      mysql-test/suite/sys_vars/t/ssl_cipher_basic.test:
        Updated test case for bug #42778:
        system variables were NOT NULL, now they are nullable.
      mysql-test/t/variables.test:
        Added test case for bug #42778.
      sql/item.cc:
        Bug #42778: delete order by null global variable causes
                    assertion .\filesort.cc, line 797
        
        The longlong_from_string_with_check function has been modified
        to skip unwanted warnings: now it uses the THD::no_errors
        flag to suppress warnings.
        The Item_func_get_system_var::update_null_value method
        sets the no_error flag.
      sql/item_func.cc:
        Bug #42778: delete order by null global variable causes
                    assertion .\filesort.cc, line 797
        
        1. The Item_func_get_system_var::fix_length_and_dec method
           has been modified to make system variables truly nullable.
        
        2. The Item_func_get_system_var::update_null_value method
           method has been overloaded with a simple wrapper (like
           Item_field::update_null_value) to suppress unwanted warnings
           from Item_func_get_system_var::val_int() calls on non-numeric
           variable values: the Item_func_get_system_var::update_null_value
           method sets and restores THD::no_errors flag for a nested
           call of the longlong_from_string_with_check function.
      sql/item_func.h:
        Bug #42778: delete order by null global variable causes
                    assertion .\filesort.cc, line 797
        
        The Item_func_get_system_var::update_null_value method
        method has been overloaded.
      0f49ffc4
    • Patrick Crews's avatar
      Bug#40465: mysqldump.test does no checking of dump or restore. · 177f7550
      Patrick Crews authored
      Created new .test file - mysqldump_restore that does this for a limited number
      of basic cases.
      Created new .inc file - mysqldump.inc - renames original table and uses mysqldump
      output to recreate the table, then uses diff_tables.inc to compare the two tables.
      Backported include/diff_tables.inc to facilitate this testing.
      177f7550
    • Alexey Kopytov's avatar
      Automerge. · 6ffa3c6b
      Alexey Kopytov authored
      6ffa3c6b
    • Alexey Kopytov's avatar
      Automerge. · 7acfe3bd
      Alexey Kopytov authored
      7acfe3bd
    • Alexey Kopytov's avatar
      Attempt #2 to fix PB failures introduced by the patch for bug #44796. · e39ba045
      Alexey Kopytov authored
      Since max_allowed_packet is a read-only variable in 5.1 and up,
      disable warnings to avoid unnecessary test case complication.
      e39ba045
    • Alexey Kopytov's avatar
      Automerge. · 14a3a02b
      Alexey Kopytov authored
      14a3a02b
    • Alexey Kopytov's avatar
      Automerge. · 95a1439a
      Alexey Kopytov authored
      95a1439a
    • Alexey Kopytov's avatar
      Fixed a PB failure introduced by the patch for bug #44796. · 7fe1db37
      Alexey Kopytov authored
      Set max_allowed_packet to get a consistent error message.
      7fe1db37
    • Alexey Kopytov's avatar
      Automerge. · 71cdad93
      Alexey Kopytov authored
      71cdad93
    • Alexey Kopytov's avatar
      Automerge. · 93d0483e
      Alexey Kopytov authored
      93d0483e
    • Alexey Kopytov's avatar
      Automerge. · bc72b431
      Alexey Kopytov authored
      bc72b431
    • Alexey Kopytov's avatar
      Automerge. · 4d2c428c
      Alexey Kopytov authored
      4d2c428c
    • Ramil Kalimullin's avatar
      Auto-merge. · 319f998c
      Ramil Kalimullin authored
      319f998c
    • Alfranio Correia's avatar
      882038ee
    • Ramil Kalimullin's avatar
      Fix for bug#44743: Join in combination with concat does not always work · 3d7601ae
      Ramil Kalimullin authored
              bug#44766: valgrind error when using convert() in a subquery
      
      Problem: input and output buffers may be the same 
      converting a string to some charset. 
      That may lead to wrong results/valgrind warnings.  
      
      Fix: use different buffers.
      
      
      mysql-test/r/cast.result:
        Fix for bug#44743: Join in combination with concat does not always work
                bug#44766: valgrind error when using convert() in a subquery
          - test result.
      mysql-test/r/func_concat.result:
        Fix for bug#44743: Join in combination with concat does not always work
                bug#44766: valgrind error when using convert() in a subquery
          - test result.
      mysql-test/t/cast.test:
        Fix for bug#44743: Join in combination with concat does not always work
                bug#44766: valgrind error when using convert() in a subquery
          - test case.
      mysql-test/t/func_concat.test:
        Fix for bug#44743: Join in combination with concat does not always work
                bug#44766: valgrind error when using convert() in a subquery
          - test case.
      sql/item.cc:
        Fix for bug#44743: Join in combination with concat does not always work
                bug#44766: valgrind error when using convert() in a subquery
          - comment added.
      sql/item_strfunc.cc:
        Fix for bug#44743: Join in combination with concat does not always work
                bug#44766: valgrind error when using convert() in a subquery
          - '&args[0]->str_value' used as a parameter of args[0]->val_str(),
            as 'str' may be equal to 'str_value' which we use as the output buffer
            converting strings.
      sql/sql_string.cc:
        Fix for bug#44743: Join in combination with concat does not always work
                bug#44766: valgrind error when using convert() in a subquery
          - input and output buffers must NOT be the same.
      3d7601ae
  5. 20 May, 2009 9 commits
  6. 19 May, 2009 1 commit
    • Sergey Glukhov's avatar
      Bug#39793 Foreign keys not constructed when column has a '#' in a comment or default value · b51ebe25
      Sergey Glukhov authored
      Internal InnoDN FK parser does not recognize '\'' as quotation symbol.
      Suggested fix is to add '\'' symbol check for quotation condition
      (dict_strip_comments() function).
      
      
      innobase/dict/dict0dict.c:
        Internal InnoDN FK parser does not recognize '\'' as quotation symbol.
        Suggested fix is to add '\'' symbol check for quotation condition
        (dict_strip_comments() function).
      mysql-test/r/innodb_mysql.result:
        test result
      mysql-test/t/innodb_mysql.test:
        test case
      b51ebe25
  7. 18 May, 2009 2 commits
    • Gleb Shchepa's avatar
      Bug#40825: Error 1356 while selecting from a view · 2d55cc51
      Gleb Shchepa authored
                 with a "HAVING" clause though query works
      
      SELECT from views defined like:
      
        CREATE VIEW v1 (view_column)
          AS SELECT c AS alias FROM t1 HAVING alias
      
      fails with an error 1356:
        View '...' references invalid table(s) or column(s)
        or function(s) or definer/invoker of view lack rights
        to use them
      
      
      CREATE VIEW form with a (column list) substitutes
      SELECT column names/aliases with names from a
      view column list.
      However, alias references in HAVING clause was
      not substituted.
      
      
      The Item_ref::print function has been modified
      to write correct aliased names of underlying
      items into VIEW definition generation/.frm file.
      
      
      mysql-test/r/view.result:
        Added test file for bug #40825.
      mysql-test/t/view.test:
        Added test file for bug #40825.
      sql/item.cc:
        Bug#40825: Error 1356 while selecting from a view
                   with a "HAVING" clause though query works
        
        The Item_ref::print function has been modified
        to write correct aliased names of underlying
        items into VIEW definition generation/.frm file.
      2d55cc51
    • Gleb Shchepa's avatar
      Bug #44768: SIGFPE crash when selecting rand from a view containing null · 4054d13f
      Gleb Shchepa authored
      The RAND(N) function where the N is a field of "constant" table
      (table of single row) failed with a SIGFPE.
      
      Evaluation of RAND(N) rely on constant status of its argument.
      Current server "seeded" random value for each constant argument
      only once, in the Item_func_rand::fix_fields method.
      Then the server skipped a call to seed_random() in the
      Item_func_rand::val_real method for such constant arguments.
      
      However, non-constant state of an argument may be changed
      after the call to fix_fields, if an argument is a field of
      "constant" table. Thus, pre-initialization of random value
      in the fix_fields method is too early.
      
      
      Initialization of random value by seed_random() has been
      removed from Item_func_rand::fix_fields method.
      The Item_func_rand::val_real method has been modified to
      call seed_random() on the first evaluation of this method
      if an argument is a function.
      
      
      mysql-test/r/func_math.result:
        Added test case for bug #44768.
      mysql-test/t/func_math.test:
        Added test case for bug #44768.
      sql/item_func.cc:
        Bug #44768: SIGFPE crash when selecting rand from a view containing null
        
        1. Initialization of random value by seed_random() has been
           removed from Item_func_rand::fix_fields method.
        2. The Item_func_rand::val_real method has been modified to
           call seed_random() on the first evaluation of this method
           if an argument is a function.
      sql/item_func.h:
        Bug #44768: SIGFPE crash when selecting rand from a view containing null
        
        1. The Item_func_rand::first_eval has been added to trace
           the first evaluation of the val_real method.
        2. The Item_func_rand::cleanup method has been added to
           cleanup the first_eval flag.
      4054d13f
  8. 17 May, 2009 3 commits
    • Kristofer Pettersson's avatar
      Bug#19027 MySQL 5.0 starts even with Fatal InnoDB errors · d5b1921d
      Kristofer Pettersson authored
      Fix bug in mtr_cases.pm script visible only when InnoDB isn't configured.
      
      mysql-test/lib/mtr_cases.pm:
        If InnoDB isn't configured the help texts won't show the "innodb" option and mysqld_variables will not contain any "innodb" entry.
      d5b1921d
    • Narayanan V's avatar
      Bug#44856 IBMDB2I gives misleading 2504 error · 0cbabcb8
      Narayanan V authored
      Occasionally, if both the partition_pruning
      and partition_range tests are run sequentially
      against the IBMDB2I engine, the partition_range
      test will fail.
      
      Compiler padding on a 64-bit build allowed
      garbage data in the hash key used for
      caching open iconv descriptors. As a
      result, cached descriptors were not found,
      and multiple duplicate iconv descriptors
      were opened for a single character set.
      Eventually, the maximum number of open
      iconv descriptors was reached, and further
      iconv_open() calls would fail, leading the
      storage engine to report incorrectly that
      the character set was not supported.
      
      This patch widens the 16-bit members of the
      hash key to 32 bits to eliminate compiler
      padding. The entire length of the hash key
      is now initialized correctly on both 32-bit
      and 64-bit builds.
      
      storage/ibmdb2i/db2i_charsetSupport.cc:
        Bug#44856 IBMDB2I gives misleading 2504 error
        
        widen the 16-bit members of the
        hash key to 32 bits to eliminate
        compiler padding.
      0cbabcb8
    • Narayanan V's avatar
      Bug#44610 RCDFMT clause requested when creating DB2 table · 3a854447
      Narayanan V authored
      In order to better support the usage of
      IBMDB2I tables from within RPG programs,
      the storage engine should ensure that the
      RCDFMT name is consistent and predictable
      for DB2 tables.
      
      This patch appends a "RCDFMT <name>"
      clause to the CREATE TABLE statement
      that is passed to DB2.  <name> is
      generated from the original name of
      the table itself. This ensures a
      consistent and deterministic mapping
      from the original table.
      
      For the sake of simplicity only
      the alpha-numeric characters are
      preserved when generating the new
      name, and these are upper-cased;
      other characters are replaced with
      an underscore (_). Following DB2
      system identifier rules, the name
      always begins with an alpha-character
      and has a maximum of ten characters.
      If no usable characters are found in
      the table name, the name X is used.
      
      mysql-test/suite/ibmdb2i/r/ibmdb2i_bug_44610.result:
        Bug#44610 RCDFMT clause requested when creating DB2 table
        
        Result file for the test case.
      mysql-test/suite/ibmdb2i/t/ibmdb2i_bug_44610.test:
        Bug#44610 RCDFMT clause requested when creating DB2 table
        
        Test case that confirms that the names that are being generated are valid.
      storage/ibmdb2i/ha_ibmdb2i.cc:
        Bug#44610 RCDFMT clause requested when creating DB2 table
        
        This patch appends a "RCDFMT <name>"
        clause to the CREATE TABLE statement
        that is passed to DB2.  <name> is
        generated from the original name of
        the table itself. This ensures a
        consistent and deterministic mapping
        from the original table.
      storage/ibmdb2i/ha_ibmdb2i.h:
        Bug#44610 RCDFMT clause requested when creating DB2 table
        
        This patch appends a "RCDFMT <name>"
        clause to the CREATE TABLE statement
        that is passed to DB2.  <name> is
        generated from the original name of
        the table itself. This ensures a
        consistent and deterministic mapping
        from the original table.
      3a854447
  9. 15 May, 2009 2 commits