1. 10 Apr, 2007 1 commit
    • unknown's avatar
      Bug #27659: · 041767e1
      unknown authored
      The optimizer transforms DISTINCT into a GROUP BY
      when possible.
      It does that by constructing the same structure
      (a list of ORDER instances) the parser makes when
      parsing GROUP BY.
      While doing that it also eliminates duplicates.
      But if a duplicate is found it doesn't advance the
      pointer to ref_pointer array, so the next 
      (and subsequent) ORDER structures point to the wrong
      element in the SELECT list.
      Fixed by advancing the pointer in ref_pointer_array
      even in the case of a duplicate.
      
      
      mysql-test/r/distinct.result:
        Bug #27659: test case
      mysql-test/t/distinct.test:
        Bug #27659: test case
      sql/sql_select.cc:
        Bug #27659: use correct ref_pointer_array element
      041767e1
  2. 04 Apr, 2007 6 commits
  3. 03 Apr, 2007 3 commits
    • unknown's avatar
      Merge olga.mysql.com:/home/igor/mysql-4.1-opt · 5fb89701
      unknown authored
      into  olga.mysql.com:/home/igor/mysql-5.0-opt
      
      
      sql/item_cmpfunc.cc:
        Auto merged
      mysql-test/r/order_by.result:
        Manual merge
      mysql-test/t/order_by.test:
        Manual merge
      sql/item_cmpfunc.h:
        Manual merge
      5fb89701
    • unknown's avatar
      Fixed bug #27532: wrong results with ORDER/GROUP BY queries containing · 0ee34b1c
      unknown authored
      IN/BETWEEN predicates in sorting expressions.
      Wrong results may occur when the select list contains an expression
      with IN/BETWEEN predicate that differs from a sorting expression by
      an additional NOT only.
       
      Added the method Item_func_opt_neg::eq to compare correctly expressions
      containing [NOT] IN/BETWEEN.
      The eq method inherited from the Item_func returns TRUE when comparing
      'a IN (1,2)' with 'a NOT IN (1,2)' that is not, of course, correct.  
      
      
      mysql-test/r/order_by.result:
        Added a test case for bug #27532.
      mysql-test/t/order_by.test:
        Added a test case for bug #27532.
      sql/item_cmpfunc.cc:
        Fixed bug #27532.
        Added the method Item_func_opt_neg::eq to compare correctly expressions
        containing [NOT] IN/BETWEEN.
        The eq method inherited from the Item_func returns TRUE when comparing
        'a IN (1,2)' with 'a NOT IN (1,2)' that is not, of course, correct.
      sql/item_cmpfunc.h:
        Added the method Item_func_opt_neg::eq to compare correctly expressions
        containing [NOT] IN/BETWEEN.
        The eq method inherited from the Item_func returns TRUE when comparing
        'a IN (1,2)' with 'a NOT IN (1,2)' that is not, of course, correct.
      0ee34b1c
    • unknown's avatar
      Bug #27513: test case added to make sure this · 7bf304a6
      unknown authored
      crash bug doesn't reappear.
      
      
      mysql-test/r/errors.result:
        Bug #27513: test case
      mysql-test/t/errors.test:
        Bug #27513: test case
      7bf304a6
  4. 02 Apr, 2007 2 commits
  5. 31 Mar, 2007 6 commits
  6. 30 Mar, 2007 7 commits
    • unknown's avatar
      Merge mysql.com:/nfsdisk1/lars/bkroot/mysql-5.0-rpl · f47c2328
      unknown authored
      into  mysql.com:/nfsdisk1/lars/MERGE/mysql-5.0-merge
      
      
      sql/mysqld.cc:
        Auto merged
      sql/sql_base.cc:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      f47c2328
    • unknown's avatar
      BUG#26624, pushbuild fixes: Merge to 5.0 · 2016b21c
      unknown authored
      
      mysql-test/r/range.result:
        Auto merged
      mysql-test/t/range.test:
        Auto merged
      2016b21c
    • unknown's avatar
      BUG#26624: high mem usage (crash) in range optimizer · 080c0c7a
      unknown authored
      Pushbuild fixes: 
       - Make MAX_SEL_ARGS smaller (even 16K records_in_range() calls is 
         more than it makes sense to do in typical cases)
       - Don't call sel_arg->test_use_count() if we've already allocated 
         more than MAX_SEL_ARGs elements. The test will succeed but will take
         too much time for the test suite (and not provide much value).
      
      
      mysql-test/r/range.result:
        BUG#26624: high mem usage (crash) in range optimizer
        Pushbuild fixes: make the test go faster
      mysql-test/t/range.test:
        BUG#26624: high mem usage (crash) in range optimizer
        Pushbuild fixes: make the test go faster
      080c0c7a
    • unknown's avatar
      Merge kboortz@bk-internal.mysql.com:/home/bk/mysql-4.1 · ade8bbf4
      unknown authored
      into  mysql.com:/home/kent/bk/tmp/mysql-4.1-build
      
      
      ade8bbf4
    • unknown's avatar
      Bug#23233: 0 as LAST_INSERT_ID() after INSERT .. ON DUPLICATE in the · 86a0ffdd
      unknown authored
      NO_AUTO_VALUE_ON_ZERO mode.
      
      In the NO_AUTO_VALUE_ON_ZERO mode the table->auto_increment_field_not_null
      variable is used to indicate that a non-NULL value was specified by the user
      for an auto_increment column. When an INSERT .. ON DUPLICATE updates the
      auto_increment field this variable is set to true and stays unchanged for the
      next insert operation. This makes the next inserted row sometimes wrongly have
      0 as the value of the auto_increment field.
      
      Now the fill_record() function resets the table->auto_increment_field_not_null
      variable before filling the record.
      The table->auto_increment_field_not_null variable is also reset by the
      open_table() function for a case if we missed some auto_increment_field_not_null
      handling bug.
      Now the table->auto_increment_field_not_null is reset at the end of the
      mysql_load() function.
      
      Reset the table->auto_increment_field_not_null variable after each
      write_row() call in the copy_data_between_tables() function.
      
      
      
      
      sql/field_conv.cc:
        Bug#23233: 0 as LAST_INSERT_ID() after INSERT .. ON DUPLICATE in the 
        NO_AUTO_VALUE_ON_ZERO mode.
        A comment is corrected.
      sql/handler.cc:
        Bug#23233: 0 as LAST_INSERT_ID() after INSERT .. ON DUPLICATE in the 
        NO_AUTO_VALUE_ON_ZERO mode.
        Now the handler::update_auto_increment() function doesn't reset the
        table->auto_increment_field_not_null variable as it is done in the
        fill_record() function.
      sql/sql_base.cc:
        Bug#23233: 0 as LAST_INSERT_ID() after INSERT .. ON DUPLICATE in the 
        NO_AUTO_VALUE_ON_ZERO mode.
        Now the fill_record() function resets the table->auto_increment_field_not_null
        variable before filling the record.
        The table->auto_increment_field_not_null variable is also reset by the
        open_table() function for a case if we missed some auto_increment_field_not_null
        handling bug.
      sql/sql_insert.cc:
        Bug#23233: 0 as LAST_INSERT_ID() after INSERT .. ON DUPLICATE in the
        NO_AUTO_VALUE_ON_ZERO mode.
        Now the the table->auto_increment_field_not_null is reset at the end of the
        mysql_insert() an in the select_insert class destructor.
      sql/sql_load.cc:
        Bug#23233: 0 as LAST_INSERT_ID() after INSERT .. ON DUPLICATE in the 
        NO_AUTO_VALUE_ON_ZERO mode.
        Now the table->auto_increment_field_not_null is reset at the end of the
        mysql_load() function.
      sql/sql_table.cc:
        Bug#23233: 0 as LAST_INSERT_ID() after INSERT .. ON DUPLICATE in the
        NO_AUTO_VALUE_ON_ZERO mode.
        Reset the table->auto_increment_field_not_null variable after each
        write_row() call in the copy_data_between_tables() function.
      sql/table.h:
        Bug#23233: 0 as LAST_INSERT_ID() after INSERT .. ON DUPLICATE in the
        NO_AUTO_VALUE_ON_ZERO mode.
        A comment added.
      mysql-test/r/insert_update.result:
        Added the test case for the bug#23233: 0 as LAST_INSERT_ID() after
        INSERT .. ON DUPLICATE in the NO_AUTO_VALUE_ON_ZERO mode.
      mysql-test/t/insert_update.test:
        Added the test case for the bug#23233: 0 as LAST_INSERT_ID() after
        INSERT .. ON DUPLICATE in the NO_AUTO_VALUE_ON_ZERO mode.
      86a0ffdd
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · fe8c67ef
      unknown authored
      into  chilla.local:/home/mydev/mysql-5.0-axmrg
      
      
      sql/ha_ndbcluster.cc:
        Auto merged
      sql/ha_ndbcluster.h:
        Auto merged
      fe8c67ef
    • unknown's avatar
      Merge abarkov@bk-internal.mysql.com:/home/bk/mysql-5.0-rpl · 905bc913
      unknown authored
      into  mysql.com:/home/bar/mysql-5.0.b22638
      
      
      905bc913
  7. 29 Mar, 2007 14 commits
  8. 28 Mar, 2007 1 commit
    • unknown's avatar
      configure.in: · 406fd12a
      unknown authored
        Don't install ndb man pages if no ndb configured
      config-win.h, CMakeLists.txt, README, configure.js:
        Removed Cybozu patches
      
      
      configure.in:
        Don't install ndb man pages if no ndb configured
      CMakeLists.txt:
        Removed Cybozu patches
      include/config-win.h:
        Removed Cybozu patches
      win/README:
        Removed Cybozu patches
      win/configure.js:
        Removed Cybozu patches
      406fd12a