1
0
mirror of https://github.com/MariaDB/server.git synced 2025-05-05 16:59:35 +03:00

777 Commits

Author SHA1 Message Date
unknown
5aa81b561e Merge pchardin@bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  mysql.com:/home/cps/mysql/devel/5.1-rename-bug


mysql-test/r/log_tables.result:
  Auto merged
mysql-test/t/log_tables.test:
  Auto merged
sql/handler.cc:
  Auto merged
sql/handler.h:
  Auto merged
sql/log.h:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/sql_delete.cc:
  Auto merged
sql/sql_rename.cc:
  Auto merged
sql/table.cc:
  Auto merged
storage/csv/ha_tina.cc:
  Auto merged
storage/myisam/ha_myisam.cc:
  Auto merged
sql/log.cc:
  manual merge
sql/share/errmsg.txt:
  manual merge
sql/sql_table.cc:
  manual merge
2006-10-24 17:00:23 +04:00
unknown
3ee868c7b1 Bug #21072 Duplicate key error in NDB references wrong key: use MAX_KEY to signal unknown key: Added string initialization 2006-10-19 15:22:50 +02:00
unknown
822049b9e1 Merge mysql.com:/windows/Linux_space/MySQL/mysql-4.1
into  mysql.com:/windows/Linux_space/MySQL/mysql-5.0


sql/handler.cc:
  Auto merged
2006-10-19 15:00:46 +02:00
unknown
59c4b5ba20 Bug #21072 Duplicate key error in NDB references wrong key: use MAX_KEY to signal unknown key: Added string initialization 2006-10-19 14:57:04 +02:00
unknown
a95a9fea79 Bug #21072 Duplicate key error in NDB references wrong key: Added new printout for duplicate key error when key is unknown 2006-10-16 12:14:38 +02:00
unknown
8a88e57c28 Merge mysql.com:/windows/Linux_space/MySQL/mysql-4.1
into  mysql.com:/windows/Linux_space/MySQL/mysql-5.0


mysql-test/r/ndb_charset.result:
  Auto merged
mysql-test/r/ndb_index_unique.result:
  Auto merged
mysql-test/r/ndb_update.result:
  Auto merged
sql/ha_ndbcluster.cc:
  Merg
sql/handler.cc:
  Merge
2006-10-16 10:07:19 +02:00
unknown
9438b98519 Fix for Bug #17544 "Cannot do atomic log rotate",
Bug #21785 "Server crashes after rename of the log table" and
Bug #21966 "Strange warnings on create like/repair of the log
            tables"

According to the patch, from now on, one should use RENAME to
perform a log table rotation (this should also be reflected in
the manual).

Here is a sample:

use mysql;
CREATE TABLE IF NOT EXISTS general_log2 LIKE general_log;
RENAME TABLE general_log TO general_log_backup, general_log2 TO general_log;

The rules for Rename of the log tables are following:
      IF   1. Log tables are enabled
      AND  2. Rename operates on the log table and nothing is being
              renamed to the log table.
      DO   3. Throw an error message.
      ELSE 4. Perform rename.
 
The very RENAME query will go the the old (backup) table. This is
consistent with the behavoiur we have with binlog ROTATE LOGS
statement.

Other problems, which are solved by the patch are:

1) Now REPAIR of the log table is exclusive operation (as it should be), this
   also eliminates lock-related warnings. and
2) CREATE LIKE TABLE now usese usual read lock on the source table rather
   then name lock, which is too restrictive. This way we get rid of another
   log table-related warning, which occured because of the above fact
   (as a side-effect, name lock resulted in a warning).


mysql-test/r/log_tables.result:
  update result file
mysql-test/t/log_tables.test:
  Add tests for the bugs
sql/handler.cc:
  update comment
sql/handler.h:
  update function to reflect changes in log tables
  locking logic.
sql/lock.cc:
  Now we allow locking of the log tables for "privileged" threads
  Privileged thread must explicitly close and lock log tables. This
  is required for admin operations such as REPAIR.
sql/log.cc:
  Changes to the file:
  1) Add checks for table schema. It's more important now,
     as we allow rename of the log tables. Since we should
     check for schema when writing to a log table.
     E.g. if one created a table with one-only comlumn and
     renamed it to general_log, the server should cope with
     it.
  2) refactor LOGGER::flush(), so that we can now use the same
     machinery as we use in FLUSH LOGS in other statements:
     whenever we have to perform  a serious operation on the log
     tables, we have to
     (a) lock logger, which blocks other concurrent statements (such 
     as selects) (b) close logs. Then perform an
     exclusive operation, c) reenable logs and d) unlock logger.
  3) Add a function to check if a given table is a log table.
  4) Add support for "privileged" thread
  5) merge is_[general/slow]_log_table_enabled() into one function.
  6) Add new function: reopen _log_tables, which reopens the tables,
     which were enabled (after temporary close, required for admin
     operation)
sql/log.h:
  1) add a new call close_n_lock_tables(). Now we use it instead of
     LOGGER::flush() in FLUSH LOGS implementation.
  2) add a prototype for the function to check if a given
     table is a log table;
  3) add privileged table flag to table logger
  4) merge is_[general/slow]_log_table_enabled()
     into one function.
sql/mysql_priv.h:
  move log table defines to log.h
sql/sql_delete.cc:
  use new function check_if_log_table() instead of direct strcmp
sql/sql_rename.cc:
  Traverse the list of tables in mysql_rename_tables
  to make sure that log tables are processed correctly
  (that is, according to the rules specified in the
  main CS comment)
sql/sql_table.cc:
  1) mysql_admin_table() should disable logs if it performs
     exclusive admin operation on a log table. This way we
     also eliminate warning on REPAIR of the log table.
  2) mysql_create_like_table should read-lock the source table
     instead getting name lock on it. Name lock is too restrictive
     in this case.
sql/share/errmsg.txt:
  Add a new error message for rename of the log tables
sql/table.cc:
  use new function instead of direct strcmp.
  change my_strcasecmp() -> strcmp(), when
  comparing system db and table names
storage/csv/ha_tina.cc:
  update function to reflect changes in log tables
  locking logic.
storage/myisam/ha_myisam.cc:
  update function to reflect changes in log tables
  locking logic.
2006-10-13 17:26:46 +04:00
unknown
deb36ce16a Panic was being called twice!
Both on its own and in the plugin shutdown.... not so good. The code is a bit simpler, and we could now technically remove the panic all entirely if we wanted to. 


sql/handler.cc:
  Handler was returning from a panic failure. Bad idea! This means that the rest of the shutdown is not carried outin the engine.
  Removed panic specific calls. 
  
  Panic should also be called regardless of "startup".
sql/mysqld.cc:
  Removed ha_panic call (since its called in plugin shutdown)
2006-10-11 18:02:12 -07:00
unknown
b8ab82a629 bug #21790 (UNKNOWN ERROR message in geometry)
We issued UNKNOWN ERROR initially in this place and forgot to
fix it when we implemented informative error message for this


mysql-test/r/gis-rtree.result:
  test result
mysql-test/t/gis-rtree.test:
  test case
sql/handler.cc:
  let's issue informative error message here
2006-10-01 16:36:26 +05:00
unknown
40bf7b0ae2 This patch updates to remove most global hton needs. Cleans up wrong message in partition.
mysql-test/r/partition.result:
  Updated results
sql/ha_ndbcluster.cc:
  Updated hton
sql/ha_partition.cc:
  Removed need for global internal hton.
sql/handler.cc:
  Removed need for global mrg
sql/mysql_priv.h:
  Updated needs for global variables.
sql/mysqld.cc:
  Removed needs around hton
sql/partition_info.cc:
  Removed bug.... aka what happens if tables are neither?
sql/share/errmsg.txt:
  Made error message more generic.
sql/sql_cache.cc:
  Removed specific hton reference
2006-09-30 18:31:13 -07:00
unknown
76b8386550 This patch adds handlerton passing to functions. NDB and Innodb still require a global hanlderton in the main code due to the nature of the sql_cache call back function (should be solveable... another patch).
Partitioning now has a flag to allow disabling of engines from being compatible with partitioning. Cleaned up heap naming convention on panic call. 


include/heap.h:
  Added new function
sql/ha_ndbcluster.cc:
  Updated hanlderton functions
sql/ha_ndbcluster_binlog.cc:
  Updated handlerton functions.
sql/handler.cc:
  Updated handlerton functions.
sql/handler.h:
  Updated hanlderton functions
sql/log.cc:
  Updated handlerton functions
sql/mysql_priv.h:
  Updated handlerton functions
sql/mysqld.cc:
  Added Legacy handlerton functions
sql/partition_info.cc:
  Added flag support for marking engines not compatible with partitioning
sql/sql_cursor.cc:
  Updated hanlderton functions
sql/sql_show.cc:
  Updated hanlderton functions
sql/sql_tablespace.cc:
  Update for handlerton functions
storage/archive/ha_archive.cc:
  Update for hanlderton functions
storage/archive/ha_archive.h:
  Update for handlerton functions
storage/blackhole/ha_blackhole.cc:
  Update for handlerton functions
storage/csv/ha_tina.cc:
  Update for handlerton functions
storage/csv/ha_tina.h:
  Update for handlerton functions
storage/federated/ha_federated.cc:
  Updated for handlerton functions
storage/federated/ha_federated.h:
  Updated for handlerton functions
storage/heap/ha_heap.cc:
  Update for handlerton functions
storage/heap/hp_panic.c:
  Update of function name
storage/heap/hp_test1.c:
  Update of function name
storage/heap/hp_test2.c:
  Update of function name.
storage/innobase/handler/ha_innodb.cc:
  Update of function name
storage/innobase/handler/ha_innodb.h:
  Update of function name
storage/myisam/ha_myisam.cc:
  Update of function name.
storage/myisammrg/ha_myisammrg.cc:
  Update of function name
2006-09-30 12:49:46 -07:00
unknown
48d5b3bd1f This removes the passing of global hton to engine instance.
sql/ha_ndbcluster.cc:
  Removed global hton
sql/ha_ndbcluster.h:
  Removed global hton need
sql/ha_partition.cc:
  Removed global hton
sql/ha_partition.h:
  Removed global hton
sql/handler.cc:
  Removed global hton
sql/handler.h:
  Removed global hton
storage/archive/ha_archive.cc:
  Removed global hton
storage/archive/ha_archive.h:
  Global hton removed
storage/blackhole/ha_blackhole.cc:
  Global removed hton
storage/blackhole/ha_blackhole.h:
  Global hton removal
storage/csv/ha_tina.cc:
  Global hton removal
storage/csv/ha_tina.h:
  Removed global removed
storage/example/ha_example.cc:
  Global removed hton
storage/example/ha_example.h:
  Global removed hton
storage/federated/ha_federated.cc:
  Global removed hton
storage/federated/ha_federated.h:
  Global removed hton
storage/heap/ha_heap.cc:
  Global removed hton
storage/heap/ha_heap.h:
  Global removed hton
storage/innobase/handler/ha_innodb.cc:
  Global removed hton
storage/innobase/handler/ha_innodb.h:
  Removed global hton
storage/myisam/ha_myisam.cc:
  Globally removed hton
storage/myisam/ha_myisam.h:
  Globally removed hton
storage/myisammrg/ha_myisammrg.cc:
  Globally removed hton
storage/myisammrg/ha_myisammrg.h:
  Globaly removed hton
2006-09-29 17:19:02 -07:00
unknown
e4cc40f88c Bug #21072 Duplicate key error in NDB references wrong key: wrong indent for code block 2006-09-21 16:54:54 +02:00
unknown
1c732a23b8 Bug #21072 Duplicate key error in NDB references wrong key: use MAX_KEY to signal unknown key 2006-09-21 16:49:07 +02:00
unknown
3d4b52ef28 post merge fixes
BitKeeper/deleted/.del-strict_autoinc_4bdb.test:
  Delete: mysql-test/t/strict_autoinc_4bdb.test
mysql-test/r/strict_autoinc_1myisam.result:
  post merge fixes, error message was changed
mysql-test/r/strict_autoinc_2innodb.result:
  post merge fixes, error message was changed
mysql-test/r/strict_autoinc_3heap.result:
  post merge fixes, error message was changed
mysql-test/r/strict_autoinc_5ndb.result:
  post merge fixes, error message was changed
2006-09-18 15:52:16 -07:00
unknown
5d249a711c Merge acurtis@bk-internal.mysql.com:/home/bk/mysql-5.0-engines
into  xiphis.org:/home/antony/work2/engines-merge


BitKeeper/deleted/.del-ha_berkeley.cc:
  Auto merged
mysql-test/r/myisam.result:
  Auto merged
mysql-test/t/myisam.test:
  Auto merged
sql/opt_range.cc:
  Auto merged
storage/heap/ha_heap.cc:
  Auto merged
storage/myisam/ha_myisam.cc:
  Auto merged
storage/myisam/mi_packrec.c:
  Auto merged
storage/myisam/mi_rkey.c:
  Auto merged
storage/myisammrg/ha_myisammrg.cc:
  Auto merged
include/my_base.h:
  manual merge
sql/ha_ndbcluster.cc:
  manual merge
sql/handler.cc:
  manual merge
sql/handler.h:
  manual merge
sql/share/errmsg.txt:
  manual merge
storage/innobase/handler/ha_innodb.cc:
  manual merge
2006-09-18 12:16:03 -07:00
unknown
ef466a2021 Merge april.(none):/home/svoj/devel/bk/mysql-5.1
into  april.(none):/home/svoj/devel/mysql/merge/mysql-5.1-engines


mysql-test/r/myisam.result:
  Auto merged
mysql-test/t/myisam.test:
  Auto merged
sql/handler.cc:
  Auto merged
sql/opt_range.cc:
  Auto merged
storage/myisam/ha_myisam.cc:
  Auto merged
2006-09-18 19:43:33 +05:00
unknown
d79485a9be This changes the order of the universe, black is now the new white.
In practice this means that handlerton is now created by the server and is passed to the engine. Plugin startups can now also control how plugins are inited (and can optionally pass values). Bit more flexibility to those who want to write plugin interfaces to the database. 


include/mysql/plugin.h:
  Optional to pass parameter now to init and deinit functions
sql/ha_ndbcluster.cc:
  Cleanup, handlerton is now a pointer.
sql/ha_ndbcluster_binlog.cc:
  Cleanup (handlerton is now a pointer)
sql/ha_ndbcluster_binlog.h:
  Cleanup (handlerton is now a pointer)
sql/ha_partition.cc:
  Cleaned up handlerton change
sql/handler.cc:
  Cheanup of handlerton change
sql/item_sum.cc:
  Cleanedup of handlerton change
sql/log.cc:
  Cleanup of handlerton change
sql/mysql_priv.h:
  Reverted patch for variables (what would have happen previously if a have_ would have been called that was dynamically loaded? boom!)
sql/mysqld.cc:
  Cleanup of handlerton changes and reverted have variable patch
sql/partition_info.cc:
  Cleanup of handlerton (we need to clean this up a bit more).
sql/set_var.cc:
  Cleanup related to handlerton changes
sql/sql_cache.cc:
  Handlerton changes cleanup
sql/sql_insert.cc:
  Handlerton changes cleanup.
sql/sql_partition.cc:
  Handlerton cleanup changes
sql/sql_plugin.cc:
  Handlerton changes.
  
  init() can now be controlled by a plugin specific startup. 
  
  There was also an issue with how we deinited the status variables. It should have been occuring before we shut down the engines.
sql/sql_select.cc:
  Handlerton cleanup changes
sql/sql_show.cc:
  Handlerton cleanup changes
sql/sql_table.cc:
  Handlerton cleanup changes
sql/table.cc:
  Cleanup
storage/archive/ha_archive.cc:
  Cleanup
storage/archive/ha_archive.h:
  Cleanup
storage/blackhole/ha_blackhole.cc:
  Cleanup
storage/csv/ha_tina.cc:
  Cleanup
storage/example/ha_example.cc:
  Cleanup
storage/federated/ha_federated.cc:
  Cleanup
storage/heap/ha_heap.cc:
  Cleanup
storage/innobase/handler/ha_innodb.cc:
  Cleanup
storage/myisam/ha_myisam.cc:
  Cleanup
storage/myisammrg/ha_myisammrg.cc:
  Cleanup
2006-09-15 10:28:00 -07:00
unknown
2b4b44b9a7 Merge chilla.local:/home/mydev/mysql-5.1--main
into  chilla.local:/home/mydev/mysql-5.1-toteam


mysql-test/t/disabled.def:
  Auto merged
BitKeeper/deleted/.del-index_merge_innodb.result:
  Auto merged
mysql-test/include/index_merge2.inc:
  Auto merged
mysql-test/include/mix1.inc:
  Auto merged
sql/handler.cc:
  Auto merged
sql/handler.h:
  Auto merged
sql/opt_range.cc:
  Auto merged
storage/myisam/ha_myisam.cc:
  Auto merged
storage/myisam/ha_myisam.h:
  Auto merged
mysql-test/include/handler.inc:
  Manual merge 5.1 -> 5.1-engines
mysql-test/r/innodb_mysql.result:
  Manual merge 5.1 -> 5.1-engines
2006-09-14 21:44:17 +02:00
unknown
fdf5e5833d After merge fix. 2006-09-12 21:38:57 +05:00
unknown
8ee5d2f684 Merge april.(none):/home/svoj/devel/bk/mysql-5.0-engines
into  april.(none):/home/svoj/devel/mysql/BUG20256/mysql-5.0-push


sql/ha_myisam.cc:
  Auto merged
sql/handler.cc:
  Auto merged
sql/handler.h:
  Auto merged
2006-09-12 18:53:51 +05:00
unknown
f74f377693 Merge april.(none):/home/svoj/devel/mysql/BUG20256/mysql-5.0-engines
into  april.(none):/home/svoj/devel/mysql/BUG20256/mysql-5.1-engines


sql/ha_myisam.cc:
  Auto merged
sql/ha_myisam.h:
  Auto merged
sql/handler.cc:
  Auto merged
BitKeeper/deleted/.del-index_merge.result:
  Auto merged
mysql-test/include/index_merge1.inc:
  Manual merge.
sql/handler.h:
  Manual merge.
sql/opt_range.cc:
  Manual merge.
2006-09-12 18:42:10 +05:00
unknown
fa1436bf1f BUG#20256 - LOCK WRITE - MyISAM
Only MyISAM tables locked with LOCK TABLES ... WRITE were affected.

A query that is optimized with index_merge doesn't reflect rows
inserted within LOCK TABLES.

MyISAM doesn't flush a state within LOCK TABLES. index_merge
optimization creates a copy of the handler, which thus gets
outdated MyISAM state.

New handler->clone() method is introduced to fix this problem.
For non-MyISAM storage engines it allocates a handler and opens
it with ha_open(). For MyISAM it additionally copies MyISAM state
pointer to cloned handler.


mysql-test/r/index_merge.result:
  A test case for bug#20256.
mysql-test/t/index_merge.test:
  A test case for bug#20256.
sql/ha_myisam.cc:
  clone method added to handler class.
sql/ha_myisam.h:
  clone method added to handler class.
sql/handler.cc:
  clone method added to handler class.
sql/handler.h:
  clone method added to handler class.
sql/opt_range.cc:
  Use handler clone method.
2006-09-12 18:25:35 +05:00
unknown
d0a978e9c8 Merge shellback.(none):/home/msvensson/mysql/mysql-5.1
into  shellback.(none):/home/msvensson/mysql/mysql-5.1-new-maint


sql/ha_innodb.cc:
  Auto merged
sql/handler.cc:
  Auto merged
sql/log.cc:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
storage/csv/ha_tina.cc:
  Auto merged
mysql-test/mysql-test-run.pl:
  Merge
2006-09-08 16:01:51 +02:00
unknown
cf747aa3f7 Merge bk-internal:/home/bk/mysql-5.1-new-maint
into  shellback.(none):/home/msvensson/mysql/mysql-5.1-new-maint


mysql-test/mysql-test-run.pl:
  Auto merged
sql/handler.cc:
  Auto merged
2006-08-31 10:33:35 +02:00
unknown
2233201ba7 Bug#20573
"strict mode: inserts autogenerated auto_increment value bigger than max"
  Strict mode should fail if autoincrement value is out of range


include/my_base.h:
  Add new handler error codes
sql/ha_berkeley.cc:
  handle error in update_auto_increment()
sql/ha_heap.cc:
  handle error in update_auto_increment()
sql/ha_innodb.cc:
  handle error in update_auto_increment()
sql/ha_myisam.cc:
  handle error in update_auto_increment()
sql/ha_myisammrg.cc:
  handle error in update_auto_increment()
sql/ha_ndbcluster.cc:
  handle error in update_auto_increment()
sql/handler.cc:
  return error from handler::update_auto_increment()
sql/handler.h:
  change return type of handler::update_auto_increment() to int
sql/share/errmsg.txt:
  new error message for auto-increment
mysql-test/include/strict_autoinc.inc:
  New BitKeeper file ``mysql-test/include/strict_autoinc.inc''
mysql-test/r/strict_autoinc_1myisam.result:
  New BitKeeper file ``mysql-test/r/strict_autoinc_1myisam.result''
mysql-test/r/strict_autoinc_2innodb.result:
  New BitKeeper file ``mysql-test/r/strict_autoinc_2innodb.result''
mysql-test/r/strict_autoinc_3heap.result:
  New BitKeeper file ``mysql-test/r/strict_autoinc_3heap.result''
mysql-test/r/strict_autoinc_4bdb.result:
  New BitKeeper file ``mysql-test/r/strict_autoinc_4bdb.result''
mysql-test/r/strict_autoinc_5ndb.result:
  New BitKeeper file ``mysql-test/r/strict_autoinc_5ndb.result''
mysql-test/t/strict_autoinc_1myisam.test:
  New BitKeeper file ``mysql-test/t/strict_autoinc_1myisam.test''
mysql-test/t/strict_autoinc_2innodb.test:
  New BitKeeper file ``mysql-test/t/strict_autoinc_2innodb.test''
mysql-test/t/strict_autoinc_3heap.test:
  New BitKeeper file ``mysql-test/t/strict_autoinc_3heap.test''
mysql-test/t/strict_autoinc_4bdb.test:
  New BitKeeper file ``mysql-test/t/strict_autoinc_4bdb.test''
mysql-test/t/strict_autoinc_5ndb.test:
  New BitKeeper file ``mysql-test/t/strict_autoinc_5ndb.test''
2006-08-30 13:20:39 -07:00
unknown
d7de5c349b This pulls two function calls which should have been handlerton calls out of handler.cc.
sql/ha_ndbcluster.cc:
  Adding in new handlerton calls.
sql/handler.cc:
  Calls directly made to NDB have been removed.
sql/handler.h:
  Two additional handlerton structure functions.
2006-08-30 12:28:25 -07:00
unknown
2f8849e2aa Re'ordering of startup. Fixed Execution path issues. Added function for de'initing everything. This includes Antony's suggestions (bk collapse uber alles!)
sql/handler.cc:
  Removed temp work needed for making status variables work with plugins.
sql/mysqld.cc:
  Removed call to plugin_load()  (not needed any longer).
sql/sql_plugin.cc:
  Status vars are now located in only one location (while this fixed execution path problems, we will need to now fix "the name" issues). Monty and I have a solution to this :)
  Added function for deiniting engines (before the logic was scattered about).
  Added step by step processing for startup of plugins. MyISAM is now loaded first (we will address this long term in a different manner).
sql/sql_plugin.h:
  Removed calls that did not need to be extern.
2006-08-29 11:58:12 -07:00
unknown
e454fb0c9d Merge baker@bk-internal.mysql.com:/home/bk/mysql-5.1
into  zim.(none):/home/brian/mysql/arch-5.1


BUILD/compile-alpha-cxx:
  Auto merged
BUILD/compile-alpha-debug:
  Auto merged
BUILD/compile-dist:
  Auto merged
BUILD/compile-ia64-debug-max:
  Auto merged
CMakeLists.txt:
  Auto merged
client/mysql.cc:
  Auto merged
sql/handler.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/sql_plugin.cc:
  Auto merged
storage/csv/ha_tina.cc:
  Auto merged
BUILD/FINISH.sh:
  Innodbase config still needed.
2006-08-25 14:07:30 -07:00
unknown
9f9c3364cb Merge baker@bk-internal.mysql.com:/home/bk/mysql-5.1-arch
into  zim.(none):/home/brian/mysql/arch-5.1


sql/handler.cc:
  Auto merged
2006-08-25 13:32:06 -07:00
unknown
ac11ba6c68 Cleanup of unused variables.
Fixed "discover" in the handler API.

Fixed problem where handlerton was not zero'ed. I need to look around, I suspect this problem is more widespread. 


sql/ha_innodb.h:
  Unused variable
sql/ha_ndbcluster.cc:
  Added "discover" to handlerton.
sql/handler.cc:
  Added plugin loop and correctly now use handler API.
sql/handler.h:
  Removed unused variable. Added discover to handler API
sql/mysqld.cc:
  Removed unused variables.
sql/sql_plugin.cc:
  Fixed DBUG Enter comment (obvious cut paste mistake)
storage/csv/ha_tina.cc:
  Found that if we don't bzero handlerton, that things can go boom!
  
  This probably needs to be fixed for all handlers
2006-08-25 13:31:15 -07:00
unknown
cf9d738b62 fix for windows build
CMakeLists.txt:
  add for federated
libmysqld/CMakeLists.txt:
  ha_heap.cc and ha_myisam.cc are removed
  add for federated
sql/CMakeLists.txt:
  add for federated
sql/handler.cc:
  fix for fussy compilers
storage/heap/CMakeLists.txt:
  add ha_heap.cc
storage/myisammrg/CMakeLists.txt:
  add ha_myisammrg.cc
2006-08-24 22:10:55 -07:00
unknown
97fb42a06e Fix VC 2005 compile problem
sql/handler.cc:
  Cast to "byte*" on both sides of equal sign
  Fix spelling error
2006-08-23 15:41:52 +02:00
unknown
118677a293 Merge pchardin@bk-internal.mysql.com:/home/bk/mysql-5.1
into  mysql.com:/home/cps/mysql/trees/mysql-5.1-virgin


sql/mysql_priv.h:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
sql/sql_view.cc:
  Auto merged
sql/table.cc:
  Auto merged
sql/table.h:
  Auto merged
sql/handler.cc:
  manual merge
2006-08-23 16:48:39 +04:00
unknown
977cd20a70 This changest:
Plugins now when compiled or not compiled work correctly with status variables. 
Status variables from plugins now set their own names (removed bit where plugin name was pre-appended this broke Innodb and Cluster)
A few Makefile cleanups. 


sql/ha_innodb.cc:
  Cleanup to make status variables directly in engine
sql/ha_ndbcluster.cc:
  Engine interface now has variables for status
sql/handler.cc:
  handler now makes sure to init status variables
sql/mysqld.cc:
  Removed status variable hacks
sql/sql_delete.cc:
  Removed include file that was not required
storage/myisam/Makefile.am:
  Cleaned up line lengths and addded additional include to not install.
storage/myisam/ha_myisam.cc:
  Removed double plugin include
2006-08-22 16:24:12 -07:00
unknown
cfafd45807 This changeset moves the ha_myisam files to their storage directories. It also includes updates for all engines include patch for windows builds.
storage/myisam/ha_myisam.h:
  Rename: sql/ha_myisam.h -> storage/myisam/ha_myisam.h
libmysqld/Makefile.am:
  Removing myisam
sql/CMakeLists.txt:
  removing myisam reference
sql/Makefile.am:
  Removing myisam reference.
sql/handler.cc:
  Removing unneeded include reference
sql/mysqld.cc:
  updating include reference
storage/archive/CMakeLists.txt:
  Update windows include
storage/blackhole/CMakeLists.txt:
  Update windows include
storage/csv/CMakeLists.txt:
  Update Windows include
storage/example/CMakeLists.txt:
  Update windows include
storage/federated/CMakeLists.txt:
  Update windows include
storage/heap/CMakeLists.txt:
  
  Update windows include
storage/myisam/CMakeLists.txt:
  Adding ha_myisam reference
storage/myisam/Makefile.am:
  Updatinng Makefile.am
storage/myisam/ha_myisam.cc:
  Updating include reference
storage/myisammrg/CMakeLists.txt:
  Update windows include
2006-08-19 17:38:42 -07:00
unknown
d1c1dac819 Update to push all of merge into the merge storage directory.
storage/myisammrg/ha_myisammrg.h:
  Rename: sql/ha_myisammrg.h -> storage/myisammrg/ha_myisammrg.h
storage/federated/CMakeLists.txt:
  BitKeeper file /home/brian/mysql/arch-5.1/storage/federated/CMakeLists.txt
libmysqld/Makefile.am:
  Removed mrg
sql/CMakeLists.txt:
  Removed mrg
sql/Makefile.am:
  Removed mrg
sql/handler.cc:
  Removed mrg include (no longer needed)
sql/sql_cache.cc:
  Updated include files
storage/heap/Makefile.am:
  
  Formatting
storage/myisammrg/Makefile.am:
  Updated makefile for mrg
storage/myisammrg/ha_myisammrg.cc:
  Updated Makefile
2006-08-19 10:23:22 -07:00
unknown
39f1d9f411 Moved heap into its own directory.
storage/heap/ha_heap.h:
  Rename: sql/ha_heap.h -> storage/heap/ha_heap.h
libmysqld/Makefile.am:
  Heap changes
sql/CMakeLists.txt:
  Removed ha_heap
sql/Makefile.am:
  Removed heap
sql/handler.cc:
  Removed unneeded include call
storage/heap/Makefile.am:
  Adjusted heap Makefile.am to include ha_heap.cc
storage/heap/ha_heap.cc:
  Added plugin header
2006-08-19 08:02:52 -07:00
unknown
728a924c66 Cleanup patch.
There is an existing macros for initializing LEX_STRINGs
with constant strings -> C_STRING_WITH_LEN. Change existing code to use it.
(char *) STRING_WITH_LEN -> C_STRING_WITH_LEN


sql/handler.cc:
  There is an existing macros for initializing LEX_STRINGs
  with constant strings -> C_STRING_WITH_LEN. Change existing code to use it.
  (char *) STRING_WITH_LEN -> C_STRING_WITH_LEN
sql/item.cc:
  There is an existing macros for initializing LEX_STRINGs
  with constant strings -> C_STRING_WITH_LEN. Change existing code to use it.
  (char *) STRING_WITH_LEN -> C_STRING_WITH_LEN
sql/mysql_priv.h:
  There is an existing macros for initializing LEX_STRINGs
  with constant strings -> C_STRING_WITH_LEN. Change existing code to use it.
  (char *) STRING_WITH_LEN -> C_STRING_WITH_LEN
sql/sql_acl.cc:
  There is an existing macros for initializing LEX_STRINGs
  with constant strings -> C_STRING_WITH_LEN. Change existing code to use it.
  (char *) STRING_WITH_LEN -> C_STRING_WITH_LEN
sql/sql_error.cc:
  There is an existing macros for initializing LEX_STRINGs
  with constant strings -> C_STRING_WITH_LEN. Change existing code to use it.
  (char *) STRING_WITH_LEN -> C_STRING_WITH_LEN
sql/sql_error.h:
  There is an existing macros for initializing LEX_STRINGs
  with constant strings -> C_STRING_WITH_LEN. Change existing code to use it.
  (char *) STRING_WITH_LEN -> C_STRING_WITH_LEN
sql/sql_lex.h:
  There is an existing macros for initializing LEX_STRINGs
  with constant strings -> C_STRING_WITH_LEN. Change existing code to use it.
  (char *) STRING_WITH_LEN -> C_STRING_WITH_LEN
sql/sql_parse.cc:
  There is an existing macros for initializing LEX_STRINGs
  with constant strings -> C_STRING_WITH_LEN. Change existing code to use it.
  (char *) STRING_WITH_LEN -> C_STRING_WITH_LEN
sql/sql_partition.cc:
  There is an existing macros for initializing LEX_STRINGs
  with constant strings -> C_STRING_WITH_LEN. Change existing code to use it.
  (char *) STRING_WITH_LEN -> C_STRING_WITH_LEN
sql/sql_plugin.cc:
  There is an existing macros for initializing LEX_STRINGs
  with constant strings -> C_STRING_WITH_LEN. Change existing code to use it.
  (char *) STRING_WITH_LEN -> C_STRING_WITH_LEN
sql/sql_show.cc:
  There is an existing macros for initializing LEX_STRINGs
  with constant strings -> C_STRING_WITH_LEN. Change existing code to use it.
  (char *) STRING_WITH_LEN -> C_STRING_WITH_LEN
sql/sql_trigger.cc:
  There is an existing macros for initializing LEX_STRINGs
  with constant strings -> C_STRING_WITH_LEN. Change existing code to use it.
  (char *) STRING_WITH_LEN -> C_STRING_WITH_LEN
sql/sql_view.cc:
  There is an existing macros for initializing LEX_STRINGs
  with constant strings -> C_STRING_WITH_LEN. Change existing code to use it.
  (char *) STRING_WITH_LEN -> C_STRING_WITH_LEN
sql/tztime.cc:
  There is an existing macros for initializing LEX_STRINGs
  with constant strings -> C_STRING_WITH_LEN. Change existing code to use it.
  (char *) STRING_WITH_LEN -> C_STRING_WITH_LEN
2006-08-17 18:13:45 +02:00
unknown
189b8bc531 Merge baker@bk-internal.mysql.com:/home/bk/mysql-5.1-new-maint
into  zim.(none):/home/brian/mysql/remove-bdb-5.1


configure.in:
  Auto merged
mysql-test/mysql-test-run.pl:
  Auto merged
sql/Makefile.am:
  Auto merged
sql/handler.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
2006-08-10 13:44:04 -07:00
unknown
04d2b020a4 This is the second patch for bdb removeal. This takes care of all options and variables that rely on bdb.
BitKeeper/deleted/.del-ha_berkeley.cc:
  Delete: sql/ha_berkeley.cc
BitKeeper/deleted/.del-ha_berkeley.h:
  Delete: sql/ha_berkeley.h
mysql-test/install_test_db.sh:
  Removed skip option
mysql-test/mysql-test-run.pl:
  Remove bdb option
mysql-test/mysql-test-run.sh:
  Remove bdb option
sql/Makefile.am:
  Remove bdb option
sql/handler.cc:
  Remove references to bdb
sql/lex.h:
  Removed lex for bdb
sql/mysql_priv.h:
  Removed bdb privs
sql/mysqld.cc:
  Removed all options for bdb
sql/set_var.cc:
  Removed variables for bdb
sql/sql_yacc.yy:
  Removed yacc for bdb
2006-08-10 01:50:37 -07:00
unknown
29701579b3 Merge moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.1-merge
into  moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.1-rt-merge


sql/handler.cc:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/share/errmsg.txt:
  Auto merged
2006-08-09 16:42:21 +04:00
unknown
f1af1a5d7e Merge govinda.patg.net:/home/patg/mysql-build/mysql-5.0-holyfoot
into  govinda.patg.net:/home/patg/mysql-build/mysql-5.1-5.0-merge2

Push by holyfoot@production.mysql.com on Tue Jul 25 13:41:40 2006:

bk clone -l -r'holyfoot/hf@mysql.com/deer.(none)|ChangeSet|20060725085017|41021' mysql-5.0 tmp_merge


BitKeeper/deleted/.del-libmysqld.dsp~78dc6a589e5a4149:
  Auto merged
configure.in:
  Auto merged
libmysqld/lib_sql.cc:
  Auto merged
mysql-test/r/date_formats.result:
  Auto merged
mysql-test/r/merge.result:
  Auto merged
mysql-test/t/date_formats.test:
  Auto merged
mysql-test/t/merge.test:
  Auto merged
sql/field.h:
  Auto merged
sql/ha_myisammrg.cc:
  Auto merged
BitKeeper/deleted/.del-libmysqld.vcproj~a75d5b9a5967dea0:
  Auto merged
BitKeeper/deleted/.del-libmysqld_ia64.dsp~578ab58d5f281d2a:
  Auto merged
BitKeeper/deleted/.del-mysqld.dsp~ffdbf2d234e23e56:
  Auto merged
BitKeeper/deleted/.del-mysqld.vcproj~6aa7b3f9c3e28fcb:
  Auto merged
BitKeeper/deleted/.del-mysqld_ia64.dsp~7f8cf84d81ee04e2:
  Auto merged
BitKeeper/deleted/.del-mysqldemb.dsp~1baf8c0e59ee9f7e:
  Auto merged
BitKeeper/deleted/.del-mysqldemb.vcproj~54c64d55ccc51a7c:
  Auto merged
BitKeeper/deleted/.del-mysqldemb_ia64.dsp~c7f7d75d542393cd:
  Auto merged
BitKeeper/deleted/.del-mysqldmax.dsp~5d213fe1c204142e:
  Auto merged
BitKeeper/deleted/.del-mysqldmax_ia64.dsp~25006b7cc0725ad1:
  Auto merged
sql/item_strfunc.cc:
  Auto merged
sql/item_timefunc.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
support-files/mysql.spec.sh:
  Auto merged
include/my_base.h:
  Hand merge of conflicts (5.0-5.1 merge), second try 
  
  Push by holyfoot@production.mysql.com on Tue Jul 25 13:41:40 2006:
  
  bk clone -l -r'holyfoot/hf@mysql.com/deer.(none)|ChangeSet|20060725085017|41021' mysql-5.0 tmp_merge
mysql-test/r/federated.result:
  Hand merge of conflicts (5.0-5.1 merge), second try 
  
  Push by holyfoot@production.mysql.com on Tue Jul 25 13:41:40 2006:
  
  bk clone -l -r'holyfoot/hf@mysql.com/deer.(none)|ChangeSet|20060725085017|41021' mysql-5.0 tmp_merge
mysql-test/t/federated.test:
  Hand merge of conflicts (5.0-5.1 merge), second try 
  
  Push by holyfoot@production.mysql.com on Tue Jul 25 13:41:40 2006:
  
  bk clone -l -r'holyfoot/hf@mysql.com/deer.(none)|ChangeSet|20060725085017|41021' mysql-5.0 tmp_merge
sql/field.cc:
  Hand merge of conflicts (5.0-5.1 merge), second try 
  
  Push by holyfoot@production.mysql.com on Tue Jul 25 13:41:40 2006:
  
  bk clone -l -r'holyfoot/hf@mysql.com/deer.(none)|ChangeSet|20060725085017|41021' mysql-5.0 tmp_merge
sql/ha_federated.cc:
  Hand merge of conflicts (5.0-5.1 merge), second try 
  
  Push by holyfoot@production.mysql.com on Tue Jul 25 13:41:40 2006:
  
  bk clone -l -r'holyfoot/hf@mysql.com/deer.(none)|ChangeSet|20060725085017|41021' mysql-5.0 tmp_merge
sql/handler.cc:
  Hand merge of conflicts (5.0-5.1 merge), second try 
  
  Push by holyfoot@production.mysql.com on Tue Jul 25 13:41:40 2006:
  
  bk clone -l -r'holyfoot/hf@mysql.com/deer.(none)|ChangeSet|20060725085017|41021' mysql-5.0 tmp_merge
tests/mysql_client_test.c:
  Hand merge of conflicts (5.0-5.1 merge), second try 
  
  Push by holyfoot@production.mysql.com on Tue Jul 25 13:41:40 2006:
  
  bk clone -l -r'holyfoot/hf@mysql.com/deer.(none)|ChangeSet|20060725085017|41021' mysql-5.0 tmp_merge
2006-08-08 09:01:32 -07:00
unknown
157c42de97 Fix Bug #18559 "log tables cannot change engine, and
gets deadlocked when dropping w/ log on"

Log tables rely on concurrent insert machinery to add data.
This means that log tables are always opened and locked by
special (artificial) logger threads. Because of this, the thread
which tries to drop a log table starts to wait for the table
to be unlocked. Which will happen only if the log table is disabled.
Alike situation happens if one tries to alter a log table.
However in addition to the problem above, alter table calls
check_if_locking_is_allowed() routine for the engine. The
routine does not allow alter for the log tables. So, alter
doesn't start waiting forever for logs to be disabled, but 
returns with an error.
Another problem is that not all engines could be used for
the log tables. That's because they need concurrent insert.

In this patch we:
(1) Explicitly disallow to drop/alter a log table if it
    is currently used by the logger.
(2) Update MyISAM to support log tables
(3) Allow to drop log tables/alter log tables if log is
    disabled
At the same time we (4) Disallow to alter log tables to
unsupported engine (after this patch CSV and MyISAM are 
alowed)
Recommit with review fixes.


mysql-test/r/log_tables.result:
  Update result file.
  Note: there are warnings in result file. This is because of CSV
  bug (Bug #21328). They should go away after it is fixed.
mysql-test/t/log_tables.test:
  Add a test for the bug
sql/ha_myisam.cc:
  Add log table handling to myisam: as log tables
  use concurrent insert, they are typically
  locked with TL_CONCURRERENT_INSERT lock. So,
  disallow other threads to attempt locking of
  the log tables in incompatible modes. Because
  otherwise the threads will wait for the tables
  to be unlocked forever.
sql/handler.cc:
  Add a function to check if a table we're going to lock
  is a log table and if the lock mode we want allowed
sql/handler.h:
  Add a new function to check compatibility of the locking
sql/log.cc:
  we shouldn't close the log table if and only
  if this particular table is already closed
sql/log.h:
  add new functions to check if a log is enabled
sql/share/errmsg.txt:
  add new error messages
sql/sql_table.cc:
  DROP and ALTER TABLE should not work on log
  tables if the log tables are enabled
storage/csv/ha_tina.cc:
  move function to check if the locking for the log
  tables allowed to handler class, so that we can
  reuse it in other engines.
storage/myisam/mi_extra.c:
  add new ::extra() flag processing to myisam
storage/myisam/mi_open.c:
  init log table flag
storage/myisam/mi_write.c:
  update status after each write if it's a log table
storage/myisam/myisamdef.h:
  Add new log table flag to myisam share.
  We need it to distinguish between usual
  and log tables, as for the log tables we
  should provide concurrent insert in a
  different way than for usual tables: we
  want new rows to be immediately visible
  to other threads.
2006-08-03 21:28:15 +04:00
unknown
a7ba5b75a6 Merge bk://anubis/mysql-5.0-engines
into  xiphis.org:/home/antony/work2/merge/mysql-5.0


sql/handler.cc:
  Auto merged
2006-07-21 10:14:25 -07:00
unknown
93eef69dd5 Finish the merge of the patch for bug #15195 from 4.1 -> 5.0
- Adapt it to work with the handlerton class


sql/handler.cc:
  Only create new MERGE handler if merge engine is enabled
sql/mysql_priv.h:
  Use the myisammrg_hton.state field for the have_merge_db option
sql/mysqld.cc:
  Handle the OPT_MERGE (--skip-merge) option case
2006-07-20 13:41:00 -06:00
unknown
a00f18e5e6 Merge bk-internal:/home/bk/mysql-5.0-engines
into  rama.(none):/home/jimw/my/mysql-5.0-17608


include/my_base.h:
  Auto merged
mysql-test/r/merge.result:
  Auto merged
mysql-test/t/merge.test:
  Auto merged
sql/ha_myisammrg.cc:
  Auto merged
sql/handler.cc:
  Auto merged
2006-07-18 10:25:04 -07:00
unknown
39f9adfa84 --{skip-}merge option added which allows the user to disable merge engine and
to avoid the potential security problem.
(see bug #15195: Security Breach with MERGE table)
2006-07-14 16:26:58 +05:00
unknown
97cdd9df8a Bug #17766: The server accepts to create MERGE tables which cannot work
Changed the error reporting (and a crash) when inserting data into a
 MERGE table that has no underlying tables or no INSERT_METHOD specified
 by reporting that it is read-only.


include/my_base.h:
  Add new handler error
mysql-test/r/merge.result:
  Update results
mysql-test/t/merge.test:
  Add new regression test
sql/ha_myisammrg.cc:
  When trying to insert into a MERGE table with no underlying tables
  or no INSERT_METHOD, report that it is read-only.
sql/handler.cc:
  Handle new error message
2006-07-11 17:28:50 -07:00
unknown
20c59f9c4b fixes after merge. Updates to test's results.
We now reset the THD members related to auto_increment+binlog in
MYSQL_LOG::write(). This is better than in THD::cleanup_after_query(),
which was not able to distinguish between SELECT myfunc1(),myfunc2()
and INSERT INTO t SELECT myfunc1(),myfunc2() from a binlogging point
of view.
Rows_log_event::exec_event() now calls lex_start() instead of
mysql_init_query() because the latter now does too much (it resets
the binlog format).


mysql-test/extra/rpl_tests/rpl_insert_id.test:
  fix after merge
mysql-test/mysql-test-run.pl:
  -v does not bring useful information when running valgrind; I remove it;
  if you think it's useful add it back.
mysql-test/r/binlog_stm_mix_innodb_myisam.result:
  Position columns of SHOW BINLOG EVENTS are replaced by # (more robust
  if the size of an event changes).
mysql-test/r/rpl_insert_id.result:
  fix after merge
mysql-test/r/rpl_loaddata.result:
  The binlog positions change, because one event disappeared; indeed there
  was this in the binlog (in the current 5.1!):
  SET INSERT_ID=2;
  SET INSERT_ID=1;
  SET TIMESTAMP=1152540671;
  load data LOCAL INFILE '/tmp/SQL_LOAD_MB-1-2' INTO table t1;
  Two INSERT_ID events, useless and a bug. Goes away afer cleaning up
  auto_increment handling.
mysql-test/r/rpl_switch_stm_row_mixed.result:
  INSERT_ID=5 appears, it's a consequence of having merged the fix
  for BUG#20341
  "stored function inserting into one auto_increment puts bad data in slave".
  In mixed mode, if one substatement of a stored procedure requires row-based,
  the entire procedure uses row-based (was already true for stored functions);
  this is a consequence of not doing the resetting of binlog format inside
  lock_tables() (which didn't work with how the slave thread executes
  row-based binlog events).
mysql-test/t/rpl_switch_stm_row_mixed.test:
  removing the multi-row delayed insert because in RBR the number of events
  which it generates, is not repeatable (probably depends on how the delayed
  thread groups rows, i.e. dependent on timing).
sql/ha_partition.cc:
  update to new prototype
sql/ha_partition.h:
  update to new prototype of the handler:: method.
sql/handler.cc:
  after-merge fixes (manually merging part which was hard to merge in fmtool)
sql/log.cc:
  When we write to the binary log, THD's parameters which influenced this
  write are reset: stmt_depends_on_first_successful_insert_id_in_prev_stmt
  and auto_inc_intervals_in_cur_stmt_for_binlog. This is so that future
  writes are not influenced by those and can write their own values.
  As a consequence, when we don't write to the binlog we do not reset.
  This is to abide by the rule that in a complex statement (using triggers etc),
  the first top- or substatement to generate auto_increment ids
  wins their writing to the binlog (that writing may be done by the statement
  itself or by the caller); so for example for
  INSERT INTO t SELECT myfunc() where myfunc() inserts into auto_increment
  and INSERT INTO t does not, myfunc() will fill
  auto_inc_intervals_in_cur_stmt_for_binlog, which will not be reset when
  myfunc() ends, then INSERT INTO t will write to the binlog and thus
  write the preserved auto_inc_intervals_in_cur_stmt_for_binlog.
sql/log_event.cc:
  mysql_init_query() does too much now to be called in Rows_log_event::exec_event
  (it call mysql_reset_thd_for_next_command() which may switch
  the binlog format now).
  It's ok to call it in Table_map_log_event::exec_event() but its call must
  be before setting the binlog format to "row".
sql/sql_base.cc:
  Resetting the binlog format in lock_tables() was a bad idea of mine;
  it causes problems in execution of row-based binlog events, where
  the thread sets the binlog format by itself and does not want a next
  lock_tables() to reset the binlog format.
  It is also misleading, for a function named lock_tables(), to reset
  the binlog format.
  As a consequence of this change, in mixed binlogging mode, a routine
  is logged either entirely statement-based or entirely row-based, we
  don't switch in the middle (this was already true for prelocked routines,
  now it's also true for stored procedures).
sql/sql_class.cc:
  resetting of auto_increment variables used for binlogging is now done
  when writing to the binary log, no need to do the resetting at the end
  of the statement. It is also more correct this way; consider
  SELECT myfunc1(),myfunc2();
  where both functions insert into the same auto_increment column.
  Binlogging is done in 2 events: "SELECT myfunc1()" and "SELECT myfunc2()".
  So each of those needs to have, in binlog, the INSERT_ID which
  it inserted. But as the 2 function calls are executed under prelocked mode,
  the old code didn't reset auto_inc_intervals_in_cur_stmt_for_binlog
  after the first SELECT was binlogged, and so the INSERT_ID of the first
  SELECT was binlogged for the first SELECT and (wrong) also for the 2nd
  SELECT event.
  stmt_depends_on_first_... has the same logic.
sql/sql_class.h:
  clearer comment
sql/sql_delete.cc:
  unneeded #ifdef. As we temporarily change the binlog format to "statement"
  before calling mysql_delete(), we must restore it afterwards.
sql/sql_insert.cc:
  after-merge fixes.
  No need to reset auto_inc_intervals_in_cur_stmt_for_binlog for every
  row in the delayed insert system thread, because we already reset it
  when writing to the binlog.
sql/sql_parse.cc:
  unneeded #ifdef
2006-07-10 18:41:03 +02:00