1. 05 Apr, 2007 4 commits
  2. 04 Apr, 2007 2 commits
    • unknown's avatar
      Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.0 · b651aa03
      unknown authored
      into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb
      
      
      b651aa03
    • unknown's avatar
      Bug #26242 UPDATE with subquery and triggers failing with cluster tables · 2efc0f51
      unknown authored
      In certain cases AFTER UPDATE/DELETE triggers on NDB tables that referenced
      subject table didn't see the results of operation which caused invocation
      of those triggers. In other words AFTER trigger invoked as result of update
      (or deletion) of particular row saw version of this row before update (or
      deletion).
      
      The problem occured because NDB handler in those cases postponed actual
      update/delete operations to be able to perform them later as one batch.
      
      This fix solves the problem by disabling this optimization for particular
      operation if subject table has AFTER trigger for this operation defined.
      To achieve this we introduce two new flags for handler::extra() method:
      HA_EXTRA_DELETE_CANNOT_BATCH and HA_EXTRA_UPDATE_CANNOT_BATCH.
      These are called if there exists AFTER DELETE/UPDATE triggers during a
      statement that potentially can generate calls to delete_row()/update_row().
      This includes multi_delete/multi_update statements as well as insert statements
      that do delete/update as part of an ON DUPLICATE statement.
      
      
      include/my_base.h:
        Added HA_EXTRA_DELETE_CANNOT_BATCH and HA_EXTRA_UPDATE_CANNOT_BATCH to inform handler when batching of delete/update is not possible.
      mysql-test/r/ndb_trigger.result:
        Bug #26242  UPDATE with subquery and triggers failing with cluster tables
        ---
        Added new test cases
      mysql-test/t/ndb_trigger.test:
        Bug #26242  UPDATE with subquery and triggers failing with cluster tables
        ---
        Added new test cases
      sql/ha_ndbcluster.cc:
        Bug #26242  UPDATE with subquery and triggers failing with cluster tables: Use HA_EXTRA_DELETE_CANNOT_BATCH and HA_EXTRA_UPDATE_CANNOT_BATCH to inform handler when batching of delete/update is not possible
      sql/ha_ndbcluster.h:
        Bug #26242  UPDATE with subquery and triggers failing with cluster tables: Added member variables for handling of HA_EXTRA_DELETE_CANNOT_BATCH and HA_EXTRA_UPDATE_CANNOT_BATCH to inform handler when batching of delete/update is not possible
      sql/mysql_priv.h:
        Added new method prepare_triggers_for_insert_stmt to check if batching of delete/update must be disallowed.
      sql/sql_delete.cc:
        Use HA_EXTRA_DELETE_CANNOT_BATCH to inform handler when batching of delete is not possible
      sql/sql_insert.cc:
        Added method prepare_triggers_for_insert_stmt to check if batching of delete/update must be dissallowed.
        Use HA_EXTRA_DELETE_CANNOT_BATCH and HA_EXTRA_UPDATE_CANNOT_BATCH to inform handler
         when batching of delete/update is not possible
      sql/sql_load.cc:
        Call prepare_triggers_for_insert_stmt to check if batching of delete/update must be dissallowed and
        mark fields used by triggers for the insert statement.
      sql/sql_trigger.h:
        Added has_triggers to support what particular triggers exist on a table.
      sql/sql_update.cc:
        Use HA_EXTRA_UPDATE_CANNOT_BATCH to inform handler when batching of update is not possible
      2efc0f51
  3. 03 Apr, 2007 1 commit
  4. 02 Apr, 2007 9 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 11 commits
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · 29741b71
      unknown authored
      into  chilla.local:/home/mydev/mysql-5.0-axmrg
      
      
      29741b71
    • unknown's avatar
      Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.0-engines · 817a474c
      unknown authored
      into  mysql.com:/home/svoj/devel/mysql/BUG25521/mysql-5.0-engines
      
      
      817a474c
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 4430048e
      unknown authored
      into  magare.gmz:/home/kgeorge/mysql/autopush/B26815-5.0-opt
      
      
      sql/item_sum.cc:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      4430048e
    • unknown's avatar
      Merge magare.gmz:/home/kgeorge/mysql/work/B26815-5.0-opt · 456cc52e
      unknown authored
      into  magare.gmz:/home/kgeorge/mysql/autopush/B26815-5.0-opt
      
      
      mysql-test/r/func_gconcat.result:
        Auto merged
      mysql-test/t/func_gconcat.test:
        Auto merged
      sql/item_sum.cc:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      456cc52e
    • unknown's avatar
      Bug #26815: · 40c1a3f9
      unknown authored
       When creating a temporary table the concise column type
       of a string expression is decided based on its length:
       - if its length is under 512 it is stored as either 
         varchar or char.
       - otherwise it is stored as a BLOB.
       
       There is a flag (convert_blob_length) to create_tmp_field 
       that, when >0 allows to force creation of a varchar if the
       max blob length is under convert_blob_length.
       However it must be verified that convert_blob_length 
       (settable through a SQL option in some cases) is 
       under the maximum that can be stored in a varchar column.
       While performing that check for expressions in 
       create_tmp_field_from_item the max length of the blob was
       used instead. This causes blob columns to be created in the
       heap temp table used by GROUP_CONCAT (where blobs must not
       be created in the temp table because of the constant 
       convert_blob_length that is passed to create_tmp_field() ).
       And since these blob columns are not expected in that place
       we get wrong results.
       Fixed by checking that the value of the flag variable is 
       in the limits that fit into VARCHAR instead of the max length
       of the blob column.
      
      
      mysql-test/r/func_gconcat.result:
        Bug #26815: test case
      mysql-test/t/func_gconcat.test:
        Bug #26815: test case
      sql/item_sum.cc:
        Bug #26815: wrong length was checked
      sql/sql_select.cc:
        Bug #26815: wrong length was checked
      40c1a3f9
    • unknown's avatar
      Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.0-build · 8122b0ca
      unknown authored
      into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb
      
      
      8122b0ca
    • unknown's avatar
      Merge mysql.com:/nfsdisk1/lars/bkroot/mysql-5.0-rpl · e420488e
      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_class.cc:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      e420488e
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 08d9d182
      unknown authored
      into  magare.gmz:/home/kgeorge/mysql/autopush/B27300-5.0-opt
      
      
      08d9d182
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 32fe7562
      unknown authored
      into  magare.gmz:/home/kgeorge/mysql/autopush/B27300-5.0-opt
      
      
      32fe7562
    • unknown's avatar
      Merge of BUG#26624 and BUG#26625 · bedd5b87
      unknown authored
      
      mysql-test/r/range.result:
        Auto merged
      mysql-test/t/range.test:
        Auto merged
      bedd5b87
    • unknown's avatar
      BUG#26624: high mem usage (crash) in range optimizer · 9b358f81
      unknown authored
       - Post-review fixes
      
      
      9b358f81