Test fixes resulting from changed semantics.
mysql-test/extra/rpl_tests/rpl_row_UUID.test:
Using same engine throughout to prevent NDB tests from failing.
mysql-test/r/binlog_multi_engine.result:
Result change.
mysql-test/r/ndb_read_multi_range.result:
Result change.
mysql-test/r/ndb_trigger.result:
Result change.
mysql-test/r/rpl_ndb_UUID.result:
Result change.
mysql-test/r/rpl_row_UUID.result:
Result change.
mysql-test/t/binlog_multi_engine.test:
Removing garbage.
mysql-test/t/ndb_read_multi_range.test:
Using ndbcluster for table used inside trigger.
mysql-test/t/ndb_trigger.test:
Using ndbcluster for table used inside trigger.
WL#3931 (Multi-table statement involving self-logging engines):
Adding logic to generate error if more than one engine is involved in
the statement and at least one engine is self-logging (i.e., has the
HA_HAS_OWN_BINLOGGING table flags set).
mysql-test/r/binlog_multi_engine.result:
Result change.
mysql-test/t/binlog_multi_engine.test:
Errors now generated for some statements due to NDB setting the
HA_HAS_OWN_BINLOGGING flag.
sql/sql_base.cc:
Computing both the intersection and union of all table flags in the
logic to decide logging format.
Calculating if there are more than one engine involved in the statement.
For this case, we only consider engines that hold tables that data is
written to.
Adding logic to generate error if more than one engine is involved in
the statement and at least one engine is self-logging (i.e., has the
HA_HAS_OWN_BINLOGGING table flags set).
---
Renaming variable.
mysql-test/r/binlog_multi_engine.result:
Result change
mysql-test/t/binlog_multi_engine.test:
Fixing test case. Keeping some bad statements in the test since I don't
want to disable the entire test. Have marked the offending statement
so that they can easily be found.
mysql-test/r/binlog_multi_engine.result:
Result change
mysql-test/t/binlog_multi_engine.test:
Commenting out statements that generate non-deterministic results.
Test case fixes.
mysql-test/r/binlog_multi_engine.result:
Result change.
mysql-test/r/rpl_ndb_stm_innodb.result:
Result change.
mysql-test/t/binlog_multi_engine.test:
NDB tests only work in MIXED or ROW mode. Adding some cleanup actions.
mysql-test/t/loaddata_autocom_ndb.test:
NDB requires MIXED or ROW mode.
mysql-test/t/ndb_alter_table.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_alter_table2.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_alter_table3.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_autodiscover.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_autodiscover2.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_autodiscover3.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_basic.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_binlog_log_bin.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_binlog_multi.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_bitfield.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_blob.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_blob_partition.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_cache.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_cache2.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_cache_multi.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_cache_multi2.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_charset.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_condition_pushdown.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_config.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_config2.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_cursor.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_database.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_dd_alter.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_dd_backuprestore.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_dd_basic.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_dd_ddl.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_dd_disk2memory.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_dd_dump.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_dd_sql_features.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_gis.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_index.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_index_ordered.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_index_unique.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_insert.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_limit.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_loaddatalocal.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_lock.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_minmax.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_multi.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_partition_error.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_partition_key.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_partition_list.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_partition_range.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_read_multi_range.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_rename.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_replace.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_restore.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_restore_partition.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_restore_print.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_row_format.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_single_user.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_sp.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_subquery.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_temporary.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_transaction.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_trigger.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_truncate.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_types.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_update.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndb_view.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ndbapi.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/ps_7ndb.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/rpl_ndb_commit_afterflush.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/rpl_ndb_innodb_trans.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
mysql-test/t/rpl_ndb_stm_innodb.test:
We need MIXED mode on slave since it is necessary to let the slave
switch to row format when executing replicated statements.
mysql-test/t/strict_autoinc_5ndb.test:
NDB requires MIXED or ROW mode, but will switch to row format
automatically, so we only run these tests under ROW mode.
Adding support to allow engines to tell what formats they can handle.
The server will generate an error if it is not possible to log the
statement according to the logging mode in effect.
Adding flags to several storage engines to state what they can handle.
Changes to NDB handler removing code that forces row-based mode and
adding flag saying that NDB can only handle row format.
Adding check that binlog flags are only used for real tables that are
opened for writing.
BitKeeper/deleted/.del-binlog_row_blackhole.result:
Rename: mysql-test/r/binlog_row_blackhole.result -> BitKeeper/deleted/.del-binlog_row_blackhole.result
BitKeeper/deleted/.del-binlog_row_blackhole.test:
Rename: mysql-test/t/binlog_row_blackhole.test -> BitKeeper/deleted/.del-binlog_row_blackhole.test
mysql-test/t/partition_hash.test:
Adding error check for statement that might fail.
sql/ha_ndbcluster.cc:
Removing statements that switch to row-based format.
Adding row capabilities.
sql/handler.h:
Adding handler/table flags to indicate that the engine is row- and/or
statement-logging capable.
Adding typedef for table_flags type.
sql/set_var.cc:
Removing code that prevents changing binlog format when NDB is active.
sql/share/errmsg.txt:
Adding error messages for when row- and/or statement-based logging
formats cannot be used.
sql/sql_base.cc:
Adding business logic in lock_tables() to decide when an error should
be thrown because logging is not possible.
Add logic to switch to row format when that is allowed and needed.
---
Binlog flags should only be checked for real tables that are opened for
writing. Adding code to check that.
storage/archive/ha_archive.h:
Adding row- and statement-logging capabilities to engine.
storage/blackhole/ha_blackhole.h:
Blackhole can handle statement-format only.
storage/csv/ha_tina.h:
Adding row- and statement-logging capabilities to engine.
storage/example/ha_example.h:
For the example engine, we arbitrarily decided that it only can handle
row format.
storage/federated/ha_federated.h:
Adding row- and statement-logging capabilities to engine.
storage/heap/ha_heap.h:
Heap can handle both row- and statement-based logging format.
storage/myisam/ha_myisam.cc:
MyISAM can handle both row- and statement-based logging format.
storage/myisammrg/ha_myisammrg.h:
MyISAM can handle both row- and statement-based logging format.
mysql-test/r/binlog_multi_engine.result:
New BitKeeper file ``mysql-test/r/binlog_multi_engine.result''
mysql-test/t/binlog_multi_engine.test:
New BitKeeper file ``mysql-test/t/binlog_multi_engine.test''