1. 05 Apr, 2007 9 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 2 commits
  4. 02 Apr, 2007 9 commits
  5. 31 Mar, 2007 6 commits
  6. 30 Mar, 2007 10 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
      Merge lzhou@bk-internal.mysql.com:/home/bk/mysql-5.0-ndb-bj · 1f7b3e56
      unknown authored
      into  dev3-63.(none):/home/zhl/mysql/mysql-5.0/bug24793
      
      
      ndb/src/common/transporter/TCP_Transporter.cpp:
        Auto merged
      1f7b3e56
    • unknown's avatar
      BUG#24793 Add SO_KEEPALIVE socket option to avoid cluster nodes keeping dead connections forever. · 76678a48
      unknown authored
      
      ndb/src/common/transporter/TCP_Transporter.cpp:
        Add SO_KEEPALIVE socket option
      76678a48
    • unknown's avatar
      Merge lzhou@bk-internal.mysql.com:/home/bk/mysql-5.0-ndb-bj · d21db829
      unknown authored
      into  dev3-63.(none):/home/zhl/mysql/mysql-5.0/bug23354
      
      
      ndb/src/mgmclient/CommandInterpreter.cpp:
        Auto merged
      d21db829
    • 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 2 commits