1. 07 Jun, 2007 6 commits
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 80cbbcea
      unknown authored
      into  moonbone.local:/mnt/gentoo64/work/28763-bug-5.0-opt-mysql
      
      80cbbcea
    • unknown's avatar
      Bug#28763: Selecting geometry fields in UNION caused server crash. · 6e308347
      unknown authored
      This bug was introduced by the fix for the bug#27300. In this fix a section
      of code was added to the Item::tmp_table_field_from_field_type method.
      This section intended to create Field_geom fields for the Item_geometry_func
      class and its descendants. In order to get the geometry type of the current
      item it casted "this" to the Item_geometry_func* type. But the
      Item::tmp_table_field_from_field_type method is also used for creation of
      fields for UNION and in this case this method is called for an object of the
      Item_type_holder class and the cast to the Item_geometry_func* type causes 
      a server crash.
      
      Now the Item::tmp_table_field_from_field_type method correctly works when it's
      called for both the Item_type_holder and the Item_geometry_func classes.
      The new geometry_type variable is added to the Item_type_holder class.
      The new method called get_geometry_type is added to the Item_field
      and the Field classes. It returns geometry type from the field for the
      Item_field and the Field_geom classes and fails an assert for other Field
      descendants.
      
      
      sql/field.h:
        Bug#28763: Selecting geometry fields in UNION caused server crash.
        The new method called get_geometry_type is added to the Field class.
        It returns geometry type of the field for the Field_geom class
        and fails an assert for other Field descendants.
      sql/item.cc:
        Bug#28763: Selecting geometry fields in UNION caused server crash.
        Now the Item::tmp_table_field_from_field_type method correctly works when it's
        called for both the Item_type_holder and the Item_geometry_func classes.
      mysql-test/r/gis.result:
        Added a test case for the bug#28763: Selecting geometry fields in UNION caused server crash.
      mysql-test/t/gis.test:
        Added a test case for the bug#28763: Selecting geometry fields in UNION caused server crash.
      sql/item.h:
        Bug#28763: Selecting geometry fields in UNION caused server crash.
        The new method called get_geometry_type is added to the Item_field class.
        It returns geometry type from the field.
        The new geometry_type variable is added to the Item_type_holder class.
      6e308347
    • unknown's avatar
      Merge olga.mysql.com:/home/igor/mysql-5.0-opt · 0fb85362
      unknown authored
      into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug28449
      
      0fb85362
    • unknown's avatar
      Fixed bug #28449: a crash may happen at some rare conditions when · 80cac2a2
      unknown authored
      a temporary table has grown out of heap memory reserved for it and 
      the remaining disk space is not big enough to store the table as
      a MyISAM table.
      
      The crash happens because the function create_myisam_from_heap
      does not handle safely the mem_root structure associated 
      with the converted table in the case when an error has occurred.
      
      
      sql/sql_select.cc:
        Fixed bug #28449: a crash may happen at some rare conditions when
        a temporary table has grown out of heap memory reserved for it and 
        the remaining disk space is not big enough to store the table as
        a MyISAM table.
        
        The crash happens because the function create_myisam_from_heap
        does not handle safely the mem_root structure associated 
        with the converted table in the case when an error has occurred.
        
        As it's hard to create a sitiation that would throw an error 
        a special code has been added that raises an error for a newly 
        created test called error_simulation.
      mysql-test/r/error_simulation.result:
        New BitKeeper file ``mysql-test/r/error_simulation.result''
        
        Added a test case for bug #28449.
      mysql-test/t/error_simulation-master.opt:
        New BitKeeper file ``mysql-test/t/error_simulation-master.opt''
      mysql-test/t/error_simulation.test:
        New BitKeeper file ``mysql-test/t/error_simulation.test''
        
        Added a test case for bug #28449.
      80cac2a2
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · eeab724f
      unknown authored
      into  magare.gmz:/home/kgeorge/mysql/autopush/B28878-5.0-opt
      
      eeab724f
    • unknown's avatar
      Bug#28878: InnoDB tables with UTF8 character set and indexes cause · a3957693
      unknown authored
      wrong result for DML
      When making key reference buffers over CHAR fields whitespace (0x20) 
      must be used to fill in the remaining space in the field's buffer.
      This is what Field_string::store() does.
      Fixed Field_string::get_key_image() to do the same.
      
      
      mysql-test/r/innodb_mysql.result:
        Bug#28878: test case
      mysql-test/t/innodb_mysql.test:
        Bug#28878: test case
      sql/field.cc:
        Bug#28878: Fill with space instead of binary zeros.
      a3957693
  2. 06 Jun, 2007 4 commits
    • unknown's avatar
      Bug#28505: mysql_affected_rows() may return wrong result if CLIENT_FOUND_ROWS · 60e6d1f2
      unknown authored
      flag is set.
      
      When the CLIENT_FOUND_ROWS flag is set then the server should return
      found number of rows independently whether they were updated or not.
      But this wasn't the case for the INSERT statement which always returned
      number of rows that were actually changed thus providing wrong info to
      the user.
      
      Now the select_insert::send_eof method and the mysql_insert function
      are sending the number of touched rows if the CLIENT_FOUND_ROWS flag is set.
      
      
      tests/mysql_client_test.c:
        Added a test case for the bug#28505: mysql_affected_rows() may return wrong result
        if CLIENT_FOUND_ROWS flag is set.
      sql/sql_insert.cc:
        Bug#28505: mysql_affected_rows() may return wrong result if CLIENT_FOUND_ROWS
        flag is set.
        Now the select_insert::send_eof method and the mysql_insert function
        are sending the number of touched rows if the CLIENT_FOUND_ROWS flag is set.
      60e6d1f2
    • unknown's avatar
      after merge fix · bf172e6b
      unknown authored
      bf172e6b
    • unknown's avatar
      Merge mysql.com:/home/gluh/MySQL/Merge/4.1-opt · 585ee834
      unknown authored
      into  mysql.com:/home/gluh/MySQL/Merge/5.0-opt
      
      
      mysql-test/r/subselect.result:
        Auto merged
      sql/sql_yacc.yy:
        Auto merged
      mysql-test/t/subselect.test:
        manual merge
      585ee834
    • unknown's avatar
      Bug#28553 mysqld crash in "purge master log before(select time from information_schema)" · 2c26e346
      unknown authored
      forbid the use of subselect in PURGE LOGS BEFORE command
      
      
      mysql-test/r/subselect.result:
        test result
      mysql-test/t/subselect.test:
        test case
      sql/sql_yacc.yy:
        forbid the use of subselect in PURGE LOGS BEFORE command
      2c26e346
  3. 05 Jun, 2007 1 commit
    • unknown's avatar
      Bug#28778: Wrong result of BETWEEN when comparing a DATETIME field with an · f1ef2abc
      unknown authored
      integer constants.
      
      This bug is introduced by the fix for bug#16377. Before the fix the 
      Item_func_between::fix_length_and_dec method converted the second and third
      arguments to the type of the first argument if they were constant and the first
      argument is of the DATE/DATETIME type. That approach worked well for integer
      constants and sometimes produced bad result for string constants. The fix for
      the bug#16377 wrongly removed that code at all and as a result of this the
      comparison of a DATETIME field and an integer constant was carried out in a
      wrong way and sometimes led to wrong result sets.
      
      Now the Item_func_between::fix_length_and_dec method converts the second and
      third arguments to the type of the first argument if they are constant, the
      first argument is of the DATE/DATETIME type and the DATETIME comparator isn't
      applicable.
      
      
      sql/item_cmpfunc.cc:
        Bug#28778: Wrong result of BETWEEN when comparing a DATETIME field with an
        integer constants.
        Now the Item_func_between::fix_length_and_dec method converts the second and
        third arguments to the type of the first argument if they are constant, the
        first argument is of the DATE/DATETIME type and the DATETIME comparator isn't
        applicable.
      mysql-test/r/type_datetime.result:
        Added a test case for the bug#28778: Wrong result of BETWEEN when comparing a DATETIME
        field with an integer constants.
      mysql-test/t/type_datetime.test:
        Added a test case for the bug#28778: Wrong result of BETWEEN when comparing a DATETIME
        field with an integer constants.
      f1ef2abc
  4. 04 Jun, 2007 1 commit
  5. 03 Jun, 2007 8 commits
    • unknown's avatar
      Merge olga.mysql.com:/home/igor/mysql-5.0-opt · ac9cfa1f
      unknown authored
      into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug28728
      
      ac9cfa1f
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 96a92c70
      unknown authored
      into  moonbone.local:/mnt/gentoo64/work/test-5.0-opt-mysql
      
      96a92c70
    • unknown's avatar
      user_var.result: · a8e7c57a
      unknown authored
        Corrected test case result for the bug#28494.
      item_func.h, item_func.cc:
        Corrected function names after fix for the bug#28494.
      
      
      mysql-test/r/user_var.result:
        Corrected test case result for the bug#28494.
      sql/item_func.h:
        Corrected function names after fix for the bug#28494.
      sql/item_func.cc:
        Corrected function names after fix for the bug#28494.
      a8e7c57a
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 5dfa294b
      unknown authored
      into  moonbone.local:/mnt/gentoo64/work/test-5.0-opt-mysql
      
      5dfa294b
    • unknown's avatar
      user_var.result, user_var.test: · e3a5404d
      unknown authored
        Extended test case for the bug#28494.
      
      
      mysql-test/t/user_var.test:
        Extended test case for the bug#28494.
      mysql-test/r/user_var.result:
        Extended test case for the bug#28494.
      e3a5404d
    • unknown's avatar
      Merge olga.mysql.com:/home/igor/mysql-5.0-opt · 62806826
      unknown authored
      into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug28728
      
      62806826
    • unknown's avatar
      Merge bk-internal:/home/bk/mysql-5.0-opt · 57b1ab50
      unknown authored
      into  macbook.gmz:/Users/kgeorge/mysql/work/B26162-5.0-opt
      
      
      mysql-test/r/trigger.result:
        Auto merged
      mysql-test/t/trigger.test:
        Auto merged
      sql/sql_base.cc:
        Auto merged
      sql/sql_yacc.yy:
        Auto merged
      57b1ab50
    • unknown's avatar
      Bug #26162: Trigger DML ignores low_priority_updates setting · 9d344638
      unknown authored
        
      The value of "low-priority-updates" option and the LOW PRIORITY
      prefix was taken into account at parse time.
      This caused triggers (among others) to ignore this flag (if
      supplied for the DML statement).
      Moved reading of the LOW_PRIORITY flag at run time.
      Fixed an incosistency when handling
      SET GLOBAL LOW_PRIORITY_UPDATES : now it is in effect for
      delayed INSERTs.
      Tested by checking the effect of LOW_PRIORITY flag via a 
      trigger.
      
      
      include/thr_lock.h:
        Bug #26162: moved reading of the LOW PRIORITY flag at run time
      mysql-test/r/trigger.result:
        Bug #26162: test case
      mysql-test/t/trigger.test:
        Bug #26162: test case
      sql/set_var.cc:
        Bug #26162: fixed the handling of the "low-priority-updates" option
      sql/sql_base.cc:
        Bug #26162: moved reading of the LOW PRIORITY flag at run time
      sql/sql_yacc.yy:
        Bug #26162: moved reading of the LOW PRIORITY flag at run time
      9d344638
  6. 02 Jun, 2007 8 commits
    • unknown's avatar
      Merge olga.mysql.com:/home/igor/mysql-5.0-opt · 5f4566dc
      unknown authored
      into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug28728
      
      5f4566dc
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 55b14a67
      unknown authored
      into  moonbone.local:/mnt/gentoo64/work/test-5.0-opt-mysql
      
      55b14a67
    • unknown's avatar
      item_func.cc: · 1a4fb707
      unknown authored
        Post fix for bug#28494.
        The Item_func_set_user_var::check method now silently doesn't use result_field
        if it isn't defined.
      
      
      sql/item_func.cc:
        Post fix for bug#28494.
        The Item_func_set_user_var::check method now silently doesn't use result_field
        if it isn't defined.
      1a4fb707
    • unknown's avatar
      Merge olga.mysql.com:/home/igor/mysql-5.0-opt · 8ff5607d
      unknown authored
      into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug28728
      
      8ff5607d
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 7184a592
      unknown authored
      into  moonbone.local:/mnt/gentoo64/work/test-5.0-opt-mysql
      
      7184a592
    • unknown's avatar
      Bug#28494: Grouping by Item_func_set_user_var produces incorrect result. · 26f38860
      unknown authored
      This is an additional fix.
      Item::val_xxx methods are supposed to use original data source and
      Item::val_xxx_result methods to use the item's result field. But for the
      Item_func_set_user_var class val_xxx_result methods were mapped to val_xxx
      methods. This leads, in particular, to producing bad sort keys and thus
      wrong order of the result set of queries with group by/order by clauses.
      
      The set of val_xxx_result methods is added to the Item_func_set_user_var
      class. It's the same as the val_xxx set of method but uses the result_field
      to return a value.
      
      
      mysql-test/t/user_var.test:
        Corrected test case for hte bug#28494.
      mysql-test/r/user_var.result:
        Corrected test case for hte bug#28494.
      sql/item_func.cc:
        Bug#28494: Grouping by Item_func_set_user_var produces incorrect result.
        The set of val_xxx_result methods is added to the Item_func_set_user_var
        class. It's the same as the val_xxx set of method but uses the result_field
        to return a value.
      sql/item_func.h:
        Bug#28494: Grouping by Item_func_set_user_var produces incorrect result.
        The set of val_xxx_result methods is added to the Item_func_set_user_var
        class.
      26f38860
    • unknown's avatar
      Fixed bug #28728: a crash when executing EXPLAIN EXTENDED for a query · b7ce84ad
      unknown authored
      using a derived table over a grouping subselect.
      
      This crash happens only when materialization of the derived tables 
      requires creation of auxiliary temporary table, for example when
      a grouping operation is carried out with usage of a temporary table.
      
      The crash happened because EXPLAIN EXTENDED when printing the query
      expression made an attempt to use the objects created in the mem_root
      of the temporary table which has been already freed by the moment
      when printing is called.
      
      This bug appeared after the method Item_field::print() had been 
      introduced.    
      
      
      mysql-test/r/subselect.result:
        Added a test case for bug #28728.
      mysql-test/t/subselect.test:
        Added a test case for bug #28728.
      sql/sql_select.cc:
        Fixed bug #28728: a crash when executing EXPLAIN EXTENDED for a query
        using a derived table over a grouping subselect.
        The crash happened because EXPLAIN EXTENDED when printing the query
        expression made an attempt to use the objects created in the mem_root
        of the temporary table which has been already freed by the moment
        when printing is accomplished.
        The fix in JOIN::exec() ensures using existing objects when printing 
        subselects for a derived tables by EXPLAIN EXTENDED.
      b7ce84ad
    • unknown's avatar
      Post-merge fix. · 211cac24
      unknown authored
      211cac24
  7. 01 Jun, 2007 6 commits
    • unknown's avatar
      Merge bk-internal.mysql.com:/data0/bk/mysql-5.0 · bcfe3d30
      unknown authored
      into  bk-internal.mysql.com:/data0/bk/mysql-5.0-opt
      
      
      mysql-test/r/sp.result:
        Auto merged
      mysql-test/t/sp.test:
        Auto merged
      mysql-test/t/strict.test:
        Auto merged
      mysql-test/t/subselect3.test:
        Auto merged
      sql/mysqld.cc:
        Auto merged
      sql/sp_head.cc:
        Auto merged
      sql/sql_base.cc:
        Auto merged
      sql/sql_class.h:
        Auto merged
      sql/sql_table.cc:
        Auto merged
      sql/sql_update.cc:
        Auto merged
      sql/sql_view.cc:
        Manual merge
      bcfe3d30
    • unknown's avatar
      Fix more mysqltest warnings. · 75485dc3
      unknown authored
      75485dc3
    • unknown's avatar
      106890d0
    • unknown's avatar
      Fix a typo in the test case. · 8c6d82a2
      unknown authored
      
      mysql-test/r/rpl_loaddata.result:
        Update result.
      mysql-test/t/rpl_loaddata.test:
        Fix a typo in the test file.
      8c6d82a2
    • unknown's avatar
      Fix some mysqltest warnings. · 75c45487
      unknown authored
      
      mysql-test/r/sp.result:
        Update results.
      mysql-test/t/mysql.test:
        Fix a typo.
      mysql-test/t/mysqltest.test:
        Fix a typo.
      mysql-test/t/order_by.test:
        Fix a typo.
      mysql-test/t/row.test:
        Remove an unsupported command.
      mysql-test/t/sp.test:
        Fix a typo.
      mysql-test/t/subselect3.test:
        Fix  mysqltest warnings - now it warns when sees some suspicious --
        comment
      75c45487
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 1b4234e4
      unknown authored
      into  magare.gmz:/home/kgeorge/mysql/autopush/B28366-5.0-opt-win
      
      1b4234e4
  8. 31 May, 2007 6 commits
    • unknown's avatar
      Merge gshchepa@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 263877cb
      unknown authored
      into  gleb.loc:/home/uchum/work/bk/mysql-5.0-opt
      
      263877cb
    • unknown's avatar
      Merge gleb.loc:/home/uchum/work/bk/mysql-5.0-opt-27827-fresh · c0de439a
      unknown authored
      into  gleb.loc:/home/uchum/work/bk/mysql-5.0-opt
      
      
      mysql-test/r/view.result:
        Merge with bug #27827 fix.
      mysql-test/t/view.test:
        Merge with bug #27827 fix.
      c0de439a
    • unknown's avatar
      sql_view.cc: · 20ac323d
      unknown authored
        Additional patch for bug #28244 to workaround valgrind warnings.
      
      
      sql/sql_view.cc:
        Additional patch for bug #28244 to workaround valgrind warnings.
      20ac323d
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · baa1f18e
      unknown authored
      into  moonbone.local:/mnt/gentoo64/work/28494-bug-5.0-opt-mysql
      
      baa1f18e
    • unknown's avatar
      Bug#28494: Grouping by Item_func_set_user_var produces incorrect result. · f2fb7e78
      unknown authored
      The end_update() function uses the Item::save_org_in_field() function to
      save original values of items into the group buffer. But for the 
      Item_func_set_user_var this method was mapped to the save_in_field method.
      The latter function wrongly decides to use the result_field. This leads to
      saving incorrect value in the grouping buffer and wrong result of the whole
      query.
      
      The can_use_result_field argument of the bool type is added to the
      Item_func_set_user_var::save_in_field() function. If it is set to FALSE
      then the item's result field won't be used. Otherwise it will be detected
      whether the result field will be used (old behaviour).
      Two wrapping functions for the function above are added to the 
      Item_func_set_user_var class:
      the save_in_field(Field *field, bool no_conversions) - it calls the above
      function with the can_use_result_field set to TRUE.
      the save_org_in_field(Field *field) - same, but the can_use_result_field
      is set to FALSE.
      
      
      mysql-test/t/user_var.test:
        Added a test case for the bug#28494: Grouping by Item_func_set_user_var
        produces incorrect result.
      mysql-test/r/user_var.result:
        Added a test case for the bug#28494: Grouping by Item_func_set_user_var
        produces incorrect result.
      sql/item_func.cc:
        Bug#28494: Grouping by Item_func_set_user_var produces incorrect result.
        The can_use_result_field argument of the bool type is added to the
        Item_func_set_user_var::save_in_field() function. If it is set to FALSE
        then the item's result field won't be used. Otherwise it will be detected
        whether the result field will be used (old behaviour).
      sql/item_func.h:
        Bug#28494: Grouping by Item_func_set_user_var produces incorrect result.
        The can_use_result_field argument of the bool type is added to the
        Item_func_set_user_var::save_in_field() function.
        Two wrapping functions for the function above are added to the 
        Item_func_set_user_var class:
        the save_in_field(Field *field, bool no_conversions) - it calls the above
        function with the can_use_result_field set to TRUE.
        the save_org_in_field(Field *field) - same, but the can_use_result_field
        is set to FALSE.
      f2fb7e78
    • unknown's avatar
      Fixed bug #27827. · f284baee
      unknown authored
      ON conditions from JOIN expression were ignored at CHECK OPTION
      check when updating a multi-table view with CHECK OPTION.
      
      The st_table_list::prep_check_option function has been
      modified to to take into account ON conditions at CHECK OPTION check
      It was also changed to build the check option condition only once
      for any update used in PS/SP.
      
      
      sql/table.h:
        Fixed bug #27827.
        The st_table_list::check_option_processed variable has been added
        to build the check option condition only once for any update used
        in PS/SP.
      sql/table.cc:
        Fixed bug #27827.
        The st_table_list::prep_check_option function has been
        modified to to take into account ON conditions at CHECK OPTION check
        It was also changed to build the check option condition only once
        for any update used in PS/SP.
      mysql-test/t/view.test:
        Updated test case for bug #27827.
      mysql-test/r/view.result:
        Updated test case for bug #27827.
      f284baee