summaryrefslogtreecommitdiff
path: root/mysql-test/suite/binlog
Commit message (Collapse)AuthorAgeFilesLines
* MDEV-532: Async InnoDB commit checkpoint.unknown2012-12-144-0/+60
| | | | | | | Make the commit checkpoint inside InnoDB be asynchroneous. Implement a background thread in binlog to do the writing and flushing of binlog checkpoint events to disk.
* Automatic mergeMichael Widenius2012-09-225-56/+118
|\
| * Automatic mergeMichael Widenius2012-09-225-56/+118
| |\
| | * Fix for MDEV-533: Confusing error code when doing auto-increment insert for ↵Michael Widenius2012-09-185-56/+118
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | out-of-range values create table t1 (a smallint primary key auto_increment); insert into t1 values(32767); insert into t1 values(NULL); ERROR 1062 (23000): Duplicate entry '32767' for key 'PRIMARY Now on always gets error HA_ERR_AUTOINC_RANGE=167 "Out of range value for column", independent of store engine, SQL Mode or number of inserted rows. This is an unique error that is easier to test for in replication. Another bug fix is that we now get an error when trying to insert a too big auto-generated value, even in non-strict mode. Before one get insted the max column value inserted. This patch also fixes some issues with inserting negative numbers in an auto-increment column. Fixed the ER_DUP_ENTRY and HA_ERR_AUTOINC_ERANGE are compared the same between master and slave. This ensures that replication works between an old server to a new slave for auto-increment overflow errors. Added SQLSTATE errors for handler errors Smaller bug fixes: * Added warnings for duplicate key errors when using INSERT IGNORE * Fixed bug when using --skip-log-bin followed by --log-bin, which did set log-bin to "0" * Allow one to see how cmake is called by using --just-print --just-configure BUILD/FINISH.sh: --just-print --just-configure now shows how cmake would be invoked. Good for understanding parameters to cmake. cmake/configure.pl: --just-print --just-configure now shows how cmake would be invoked. Good for understanding parameters to cmake. include/CMakeLists.txt: Added handler_state.h include/handler_state.h: SQLSTATE for handler error messages. Required for HA_ERR_AUTOINC_ERANGE, but solves also some other cases. mysql-test/extra/binlog_tests/binlog.test: Fixed old wrong behaviour Added more tests mysql-test/extra/binlog_tests/binlog_insert_delayed.test: Reset binary log to only print what's necessary in show_binlog_events mysql-test/extra/rpl_tests/rpl_auto_increment.test: Update to new error codes mysql-test/extra/rpl_tests/rpl_insert_delayed.test: Ignore warnings as this depends on how the test is run mysql-test/include/strict_autoinc.inc: On now gets an error on overflow mysql-test/r/auto_increment.result: Update results after fixing error message mysql-test/r/auto_increment_ranges_innodb.result: Test new behaviour mysql-test/r/auto_increment_ranges_myisam.result: Test new behaviour mysql-test/r/commit_1innodb.result: Added warnings for duplicate key error mysql-test/r/create.result: Added warnings for duplicate key error mysql-test/r/insert.result: Added warnings for duplicate key error mysql-test/r/insert_select.result: Added warnings for duplicate key error mysql-test/r/insert_update.result: Added warnings for duplicate key error mysql-test/r/mix2_myisam.result: Added warnings for duplicate key error mysql-test/r/myisam_mrr.result: Added warnings for duplicate key error mysql-test/r/null_key.result: Added warnings for duplicate key error mysql-test/r/replace.result: Update to new error codes mysql-test/r/strict_autoinc_1myisam.result: Update to new error codes mysql-test/r/strict_autoinc_2innodb.result: Update to new error codes mysql-test/r/strict_autoinc_3heap.result: Update to new error codes mysql-test/r/trigger.result: Added warnings for duplicate key error mysql-test/r/xtradb_mrr.result: Added warnings for duplicate key error mysql-test/suite/binlog/r/binlog_innodb_row.result: Updated result mysql-test/suite/binlog/r/binlog_row_binlog.result: Out of range data for auto-increment is not inserted anymore mysql-test/suite/binlog/r/binlog_statement_insert_delayed.result: Updated result mysql-test/suite/binlog/r/binlog_stm_binlog.result: Out of range data for auto-increment is not inserted anymore mysql-test/suite/binlog/r/binlog_unsafe.result: Updated result mysql-test/suite/innodb/r/innodb-autoinc.result: Update to new error codes mysql-test/suite/innodb/r/innodb-lock.result: Updated results mysql-test/suite/innodb/r/innodb.result: Updated results mysql-test/suite/innodb/r/innodb_bug56947.result: Updated results mysql-test/suite/innodb/r/innodb_mysql.result: Updated results mysql-test/suite/innodb/t/innodb-autoinc.test: Update to new error codes mysql-test/suite/maria/maria3.result: Updated result mysql-test/suite/maria/mrr.result: Updated result mysql-test/suite/optimizer_unfixed_bugs/r/bug43617.result: Updated result mysql-test/suite/rpl/r/rpl_auto_increment.result: Update to new error codes mysql-test/suite/rpl/r/rpl_insert_delayed,stmt.rdiff: Updated results mysql-test/suite/rpl/r/rpl_loaddatalocal.result: Updated results mysql-test/t/auto_increment.test: Update to new error codes mysql-test/t/auto_increment_ranges.inc: Test new behaviour mysql-test/t/auto_increment_ranges_innodb.test: Test new behaviour mysql-test/t/auto_increment_ranges_myisam.test: Test new behaviour mysql-test/t/replace.test: Update to new error codes mysys/my_getopt.c: Fixed bug when using --skip-log-bin followed by --log-bin, which did set log-bin to "0" sql/handler.cc: Ignore negative values for signed auto-increment columns Always give an error if we get an overflow for an auto-increment-column (instead of inserting the max value) Ensure that the row number is correct for the out-of-range-value error message. ****** Fixed wrong printing of column namn for "Out of range value" errors Fixed that INSERT_ID is correctly replicated also for out-of-range autoincrement values Fixed that print_keydup_error() can also be used to generate warnings ****** Return HA_ERR_AUTOINC_ERANGE (167) instead of ER_WARN_DATA_OUT_OF_RANGE for auto-increment overflow sql/handler.h: Allow INSERT IGNORE to continue also after out-of-range inserts. Fixed that print_keydup_error() can also be used to generate warnings sql/log_event.cc: Added DBUG_PRINT Fixed the ER_AUTOINC_READ_FAILED, ER_DUP_ENTRY and HA_ERR_AUTOINC_ERANGE are compared the same between master and slave. This ensures that replication works between an old server to a new slave for auto-increment overflow errors. sql/sql_insert.cc: Add warnings for duplicate key errors when using INSERT IGNORE sql/sql_state.c: Added handler errors sql/sql_table.cc: Update call to print_keydup_error() storage/innobase/handler/ha_innodb.cc: Fixed increment handling of auto-increment columns to be consistent with rest of MariaDB. storage/xtradb/handler/ha_innodb.cc: Fixed increment handling of auto-increment columns to be consistent with rest of MariaDB.
* | | MDEV-232: Remove one fsync() from commit phase.unknown2012-09-139-219/+506
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduce a new storage engine API method commit_checkpoint_request(). This is used to replace the fsync() at the end of every storage engine commit with a single fsync() when a binlog is rotated. Binlog rotation is now done during group commit instead of being delayed until unlog(), removing some server stall and avoiding an expensive lock/unlock of LOCK_log inside unlog().
* | | MDEV-181: XID crash recovery across binlog boundariesunknown2012-06-2212-8/+382
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Keep track of how many pending XIDs (transactions that are prepared in storage engine and written into binlog, but not yet durably committed on disk in the engine) there are in each binlog. When the count of one binlog drops to zero, write a new binlog checkpoint event, telling which is the oldest binlog with pending XIDs. When doing XA recovery after a crash, check the last binlog checkpoint event, and scan all binlog files from that point onwards for XIDs that must be committed if found in prepared state inside engine. Remove the code in binlog rotation that waits for all prepared XIDs to be committed before writing a new binlog file (this is no longer necessary when recovery can scan multiple binlog files).
* | Automatic merge with 5.5Michael Widenius2012-09-016-10/+43
|\ \ | |/
| * Merge from 5.3unknown2012-08-244-10/+10
| |\
| | * merge from 5.2unknown2012-08-244-10/+10
| | |\
| | | * Merge from 5.1.unknown2012-08-244-10/+10
| | | |\
| | | | * MDEV-382: Incorrect quotingunknown2012-08-243-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | Various places in the server replication code was incorrectly quoting strings, which could lead to incorrect SQL on the slave/mysqlbinlog.
| | * | | 5.2 mergeSergei Golubchik2012-05-202-0/+207
| | |\ \ \ | | | |/ /
| | | * | 5.1 mergeSergei Golubchik2012-05-182-0/+207
| | | |\ \ | | | | |/
| | | | * merge with mysql-5.1.63Sergei Golubchik2012-05-172-0/+207
| | | | |\
| * | | | | MDEV-340 Save replication comments for DROP TABLE.Alexey Botchkov2012-07-312-0/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mysql_rm_table_no_locks() function was modified. When we construct log record for the DROP TABLE, now we look if there's a comment before the first table name and add it to the record if so. per-file comments: sql/sql_table.cc MDEV-340 Save replication comments for DROP TABLE. comment_length() function implemented to find comments in the query, call it in mysql_rm_table_no_locks() and use the result to form log record. mysql-test/suite/binlog/r/binlog_drop_if_exists.result MDEV-340 Save replication comments for DROP TABLE. test result updated. mysql-test/suite/binlog/t/binlog_drop_if_exists.test MDEV-340 Save replication comments for DROP TABLE. test case added.
* | | | | | automatic merge with 5.5Michael Widenius2012-06-275-0/+120
|\ \ \ \ \ \ | |/ / / / /
| * | | | | MDEV-342: fix two race conditions in the test case that could occasionally ↵unknown2012-06-222-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | cause spurious failures.
| * | | | | MDEV-342: Do not mark old binlog file as cleanly closed during rotate untilunknown2012-06-213-0/+92
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the new file is fully synced to disk and binlog index. This fixes a window where a crash would leave next server restart unable to detect that a crash occured, causing recovery to fail.
| * | | | | mysql-5.5 mergeSergei Golubchik2012-06-142-0/+23
| |\ \ \ \ \
| | * \ \ \ \ WL#6236: Allow SHOW MASTER LOGS and SHOW BINARY LOGS with REPLICATION CLIENTNuno Carvalho2012-04-182-0/+23
| | |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Merge from 5.1 into 5.5.
| | | * | | | | WL#6236: Allow SHOW MASTER LOGS and SHOW BINARY LOGS with REPLICATION CLIENTNuno Carvalho2012-04-182-0/+23
| | | | |_|_|/ | | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently SHOW MASTER LOGS and SHOW BINARY LOGS require the SUPER privilege. Monitoring tools (such as MEM) often want to check this output - for instance MEM generates the SUM of the sizes of the logs reported here, and puts that in the Replication overview within the MEM Dashboard. However, because of the SUPER requirement, these tools often have an account that holds open the connection whilst monitoring, and can lock out administrators when the server gets overloaded and reaches max_connections - there is already another SUPER privileged account connected, the "monitor". As SHOW MASTER STATUS, and all other replication related statements, return with either REPLICATION CLIENT or SUPER privileges, this worklog is to make SHOW MASTER LOGS and SHOW BINARY LOGS be consistent with this as well, and allow both of these commands with either SUPER or REPLICATION CLIENT. This allows monitoring tools to not require a SUPER privilege any more, so is safer in overloaded situations, as well as being more secure, as lighter privileges can be given to users of such tools or scripts.
* | | | | | | Fixes after Serg's review of %M extenstionsMichael Widenius2012-06-172-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Changed output to be error "error-text" instead of error - error-text extra/perror.c: Move my_handler_errors.h into include include/my_handler_errors.h: Move my_handler_errors.h into include mysql-test/r/errors.result: Updated result mysql-test/r/innodb_mysql_sync.result: Updated result mysql-test/r/myisam-system.result: Updated result mysql-test/r/myisampack.result: Updated result mysql-test/r/partition_innodb_plugin.result: Updated result mysql-test/r/ps_1general.result: Updated result mysql-test/r/trigger.result: Updated result mysql-test/r/type_bit.result: Updated result mysql-test/r/type_bit_innodb.result: Updated result mysql-test/r/type_blob.result: Updated result mysql-test/suite/archive/archive.result: Updated result mysql-test/suite/binlog/r/binlog_index.result: Updated result mysql-test/suite/binlog/r/binlog_ioerr.result: Updated result mysql-test/suite/csv/csv.result: Updated result mysql-test/suite/engines/iuds/r/type_bit_iuds.result: Updated result mysql-test/suite/federated/federated_bug_35333.result: Updated result mysql-test/suite/innodb/r/innodb-create-options.result: Updated result mysql-test/suite/innodb/r/innodb-index.result: Updated result mysql-test/suite/innodb/r/innodb-zip.result: Updated result mysql-test/suite/innodb/r/innodb.result: Updated result mysql-test/suite/innodb/r/innodb_bug13635833.result: Updated result mysql-test/suite/innodb/r/innodb_bug21704.result: Updated result mysql-test/suite/innodb/r/innodb_bug46000.result: Updated result mysql-test/suite/parts/r/partition_bit_innodb.result: Updated result mysql-test/suite/parts/r/partition_bit_myisam.result: Updated result mysql-test/suite/percona/percona_innodb_fake_changes.result: Updated result mysql-test/suite/perfschema/r/misc.result: Updated result mysql-test/suite/perfschema/r/privilege.result: Updated result mysql-test/suite/rpl/r/rpl_EE_err.result: Updated result mysql-test/suite/rpl/r/rpl_binlog_errors.result: Updated result mysql-test/suite/rpl/r/rpl_drop_db.result: Updated result sql/share/errmsg-utf8.txt: Removed 'column' from error text that was used in different context strings/my_vsnprintf.c: Move my_handler_errors.h into include Minor cleanups Changed output of %M to be error "error-text" instead of error - error-text unittest/mysys/my_vsnprintf-t.c: Updated error text
* | | | | | | Merge with 5.5Michael Widenius2012-05-312-0/+18
|\ \ \ \ \ \ \ | |/ / / / / /
| * | | | | | cSergei Golubchik2012-05-212-0/+18
| |\ \ \ \ \ \ | | |/ / / / /
| | * | | | | BUG#11765650 - 58637: MARK UPDATES THAT DEPEND ON ORDER OF TWO KEYS UNSAFERohit Kalhans2012-03-302-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Description: When the table has more than one unique or primary key, INSERT... ON DUP KEY UPDATE statement is sensitive to the order in which the storage engines checks the keys. Depending on this order, the storage engine may determine different rows to mysql, and hence mysql can update different rows on master and slave. Solution: We mark INSERT...ON DUP KEY UPDATE on a table with more than on unique key as unsafe therefore the event will be logged in row format if it is available (ROW/MIXED). If only STATEMENT format is available, a warning will be thrown. mysql-test/suite/binlog/r/binlog_unsafe.result: Updated result file mysql-test/suite/binlog/t/binlog_unsafe.test: Added test to check for warning being thrown when the unsafe statement is executed mysql-test/suite/rpl/r/rpl_known_bugs_detection.result: Updated result file sql/share/errmsg-utf8.txt: Added new warning message sql/sql_base.cc: check for tables in the query with more than one UNIQUE KEY and INSERT ON DUPLICATE KEY UPDATE, and mark such statements unsafe.
* | | | | | | Added text for errno in error messages by:Michael Widenius2012-05-302-4/+4
|/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Adding %M my_sprintf() modifier that prints error number - system-error-text - Modified mysys, mysql_client and SQL error messages to use %M instead of %d - Added my_strerror() Updated handler errors to 5.6 error numbers Updated text for a few error messages (to match 5.6) Increased length of command name in error output extra/comp_err.c: Added support for %M include/my_base.h: Updated handler errors to 5.6 error numbers include/my_sys.h: Added my_strerror() libmysql/errmsg.c: Updated error messages to use %M mysql-test/r/errors.result: Updated result as error message have changed mysql-test/r/innodb_mysql_sync.result: Updated result with text for errno mysql-test/r/myisam-system.result: Updated result with text for errno mysql-test/r/myisam.result: Updated result as error message have changed mysql-test/r/myisampack.result: Updated result with text for errno mysql-test/r/mysql.result: Updated result with text for errno mysql-test/r/mysql_upgrade.result: Updated result with text for errno mysql-test/r/partition_datatype.result: Updated result as error message have changed mysql-test/r/partition_innodb_plugin.result: Updated result with text for errno mysql-test/r/ps_1general.result: Updated result with text for errno mysql-test/r/trigger.result: Updated result with text for errno mysql-test/r/type_bit.result: Updated result as error message have changed mysql-test/r/type_bit_innodb.result: Updated result as error message have changed mysql-test/r/type_blob.result: Updated result as error message have changed mysql-test/suite/archive/archive.result: Updated result with text for errno mysql-test/suite/binlog/r/binlog_index.result: Updated result with text for errno mysql-test/suite/binlog/r/binlog_ioerr.result: Updated result with text for errno mysql-test/suite/csv/csv.result: Updated result with text for errno mysql-test/suite/federated/federated_bug_35333.result: Updated result with text for errno mysql-test/suite/innodb/r/innodb-create-options.result: Updated result with text for errno mysql-test/suite/innodb/r/innodb-index.result: Updated result with text for errno mysql-test/suite/innodb/r/innodb-zip.result: Updated result as error message have changed mysql-test/suite/innodb/r/innodb.result: Updated result with text for errno mysql-test/suite/innodb/r/innodb_bug21704.result: Updated result with text for errno mysql-test/suite/innodb/r/innodb_bug46000.result: Updated result with text for errno mysql-test/suite/innodb/r/innodb_bug53591.result: Updated result as error message have changed mysql-test/suite/innodb/r/innodb_corrupt_bit.result: New error numbers mysql-test/suite/innodb/r/innodb_prefix_index_liftedlimit.result: Updated result as error message have changed mysql-test/suite/innodb/t/innodb-create-options.test: Added regexp to avoid system error text mysql-test/suite/innodb/t/innodb-zip.test: Added regexp to avoid system error text mysql-test/suite/maria/maria-recovery2.result: Updated supression rule mysql-test/suite/maria/maria-recovery2.test: Updated supression rule mysql-test/suite/maria/maria.result: Updated result as error message have changed mysql-test/suite/parts/r/partition_bit_innodb.result: Updated result as error message have changed mysql-test/suite/parts/r/partition_bit_myisam.result: Updated result as error message have changed mysql-test/suite/percona/percona_innodb_fake_changes.result: Updated result with text for errno mysql-test/suite/perfschema/r/dml_cond_instances.result: Updated result as error message have changed mysql-test/suite/perfschema/r/dml_events_waits_current.result: Updated result as error message have changed mysql-test/suite/perfschema/r/dml_events_waits_history.result: Updated result as error message have changed mysql-test/suite/perfschema/r/dml_events_waits_history_long.result: Updated result as error message have changed mysql-test/suite/perfschema/r/dml_ews_by_instance.result: Updated result as error message have changed mysql-test/suite/perfschema/r/dml_ews_by_thread_by_event_name.result: Updated result as error message have changed mysql-test/suite/perfschema/r/dml_ews_global_by_event_name.result: Updated result as error message have changed mysql-test/suite/perfschema/r/dml_file_instances.result: Updated result as error message have changed mysql-test/suite/perfschema/r/dml_file_summary_by_event_name.result: Updated result as error message have changed mysql-test/suite/perfschema/r/dml_file_summary_by_instance.result: Updated result as error message have changed mysql-test/suite/perfschema/r/dml_mutex_instances.result: Updated result as error message have changed mysql-test/suite/perfschema/r/dml_performance_timers.result: Updated result as error message have changed mysql-test/suite/perfschema/r/dml_rwlock_instances.result: Updated result as error message have changed mysql-test/suite/perfschema/r/dml_threads.result: Updated result as error message have changed mysql-test/suite/perfschema/r/misc.result: Updated result with text for errno mysql-test/suite/perfschema/r/privilege.result: Updated result with text for errno mysql-test/suite/rpl/r/rpl_EE_err.result: Updated result with text for errno mysql-test/suite/rpl/r/rpl_binlog_errors.result: Updated result with text for errno mysql-test/suite/rpl/r/rpl_drop_db.result: Updated result with text for errno mysys/errors.c: Updated error messages to use %M Changed all errors to use Errcode: consistenly mysys/my_handler_errors.h: Updated handler errors to 5.6 error numbers sql/share/errmsg-utf8.txt: Updated error messages to use %M sql/sys_vars.cc: Added error number to ER_EVENT_SET_VAR_ERROR strings/my_vsnprintf.c: Added %M my_sprintf() modifier that prints error number - system-error-text Simplify code Movied common code to function Removed some casts that was not necessary when reading integer/unsigned int stored in longlong Added my_strerror() unittest/mysys/my_vsnprintf-t.c: Added testing of %M
* | | | | | mysql 5.5.23 mergeSergei Golubchik2012-04-102-0/+207
|\ \ \ \ \ \ | |/ / / / /
| * | | | | Merge from 5.1 to 5.5Praveenkumar Hulakund2012-02-292-0/+207
| |\ \ \ \ \ | | |/ / / /
| | * | | | Bug#12601974 - STORED PROCEDURE SQL_MODE=NO_BACKSLASH_ESCAPES IGNORED AND ↵Praveenkumar Hulakund2012-02-292-0/+207
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BREAKS REPLICATION Analysis: ======================== sql_mode "NO_BACKSLASH_ESCAPES": When user want to use backslash as character input, instead of escape character in a string literal then sql_mode can be set to "NO_BACKSLASH_ESCAPES". With this mode enabled, backslash becomes an ordinary character like any other. SQL_MODE set applies to the current client session. And while creating the stored procedure, MySQL stores the current sql_mode and always executes the stored procedure in sql_mode stored with the Procedure, regardless of the server SQL mode in effect when the routine is invoked. In the scenario (for which bug is reported), the routine is created with sql_mode=NO_BACKSLASH_ESCAPES. And routine is executed with the invoker sql_mode is "" (NOT SET) by executing statement "call testp('Axel\'s')". Since invoker sql_mode is "" (NOT_SET), the '\' in 'Axel\'s'(argument to function) is considered as escape character and column "a" (of table "t1") values are updated with "Axel's". The binary log generated for above update operation is as below, set sql_mode=XXXXXX (for no_backslash_escapes) update test.t1 set a= NAME_CONST('var',_latin1'Axel\'s' COLLATE 'latin1_swedish_ci'); While logging stored procedure statements, the local variables (params) used in statements are replaced with the NAME_CONST(var_name, var_value) (Internal function) (http://dev.mysql.com/doc/refman/5.6/en/miscellaneous-functions.html#function_name-const) On slave, these logs are applied. NAME_CONST is parsed to get the variable and its value. Since, stored procedure is created with sql_mode="NO_BACKSLASH_ESCAPES", the sql_mode is also logged in. So that at slave this sql_mode is set before executing the statements of routine. So at slave, sql_mode is set to "NO_BACKSLASH_ESCAPES" and then while parsing NAME_CONST of string variable, '\' is considered as NON ESCAPE character and parsing reported error for "'" (as we have only one "'" no backslash). At slave, parsing was proper with sql_mode "NO_BACKSLASH_ESCAPES". But above error reported while writing bin log, "'" (of Axel's) is escaped with "\" character. Actually, all special characters (n, r, ', ", \, 0...) are escaped while writing NAME_CONST for string variable(param, local variable) in bin log Airrespective of "NO_BACKSLASH_ESCAPES" sql_mode. So, basically, the problem is that logging string parameter does not take into account sql_mode value. Fix: ======================== So when sql_mode is set to "NO_BACKSLASH_ESCAPES", escaping characters as (n, r, ', ", \, 0...) should be avoided. To do so, added a check to not to escape such characters while writing NAME_CONST for string variables in bin log. And when sql_mode is set to NO_BACKSLASH_ESCAPES, quote character "'" is represented as ''. http://dev.mysql.com/doc/refman/5.6/en/string-literals.html (There are several ways to include quote characters within a string: ) mysql-test/r/sql_mode.result: Added test case for Bug#12601974. mysql-test/suite/binlog/r/binlog_sql_mode.result: Appended result of test cases added for Bug#12601974. mysql-test/suite/binlog/t/binlog_sql_mode.test: Added test case for Bug#12601974. mysql-test/t/sql_mode.test: Appended result of test cases added for Bug#12601974.
* | | | | | mergeSergei Golubchik2012-04-071-1/+1
|\ \ \ \ \ \ | | |_|/ / / | |/| | | |
| * | | | | mergeSergei Golubchik2012-04-052-9/+22
| |\ \ \ \ \ | | | |_|/ / | | |/| | |
| | * | | | mergeSergei Golubchik2012-04-052-9/+22
| | |\ \ \ \ | | | | |_|/ | | | |/| |
| | | * | | mysql-5.1.62 mergeSergei Golubchik2012-04-052-8/+21
| | | |\ \ \ | | | | | |/ | | | | |/|
| * | | | | Merge with 5.2.Michael Widenius2011-12-114-3/+30
| |\ \ \ \ \ | | |/ / / / | | | | | | | | | | | | no_error handling for select (used by INSERT ... SELECT) still needs to be fixed, but I will do that in a separate commit
| | * | | | Merge with MariaDB 5.1Michael Widenius2011-11-244-3/+30
| | |\ \ \ \ | | | |/ / /
| | | * | | Initail merge with MySQL 5.1 (XtraDB still needs to be merged)Michael Widenius2011-11-214-3/+30
| | | |\ \ \ | | | | | | | | | | | | | | | | | | | | | Fixed up copyright messages.
* | | | \ \ \ mysql-5.5.22 mergeSergei Golubchik2012-03-282-19/+38
|\ \ \ \ \ \ \ | | |_|_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mysql-test/suite/innodb/t/group_commit_crash.test: remove autoincrement to avoid rbr being used for insert ... select mysql-test/suite/innodb/t/group_commit_crash_no_optimize_thread.test: remove autoincrement to avoid rbr being used for insert ... select mysys/my_addr_resolve.c: a pointer to a buffer is returned to the caller -> the buffer cannot be on the stack mysys/stacktrace.c: my_vsnprintf() is ok here, in 5.5
| * | | | | | BUG#11758263 50440: MARK UNORDERED UPDATE WITH AUTOINC UNSAFERohit Kalhans2012-02-092-19/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Statements that write to tables with auto_increment columns based on the selection from another table, may lead to master and slave going out of sync, as the order in which the rows are retrieved from the table may differ on master and slave. Solution: We mark writing to a table with auto_increment table based on the rows selected from another table as unsafe. This will cause the execution of such statements to throw a warning and forces the statement to be logged in ROW if the logging format is mixed. Changes: 1. All the statements that writes to a table with auto_increment column(s) based on the rows fetched from another table, will now be unsafe. 2. CREATE TABLE with SELECT will now be unsafe. sql/share/errmsg-utf8.txt: Added new warning messages. sql/sql_base.cc: -Created function to check statements that write to tables with auto_increment column and has select. -Marked all the statements that write to a table with auto_increment column based on rows fetched from other table(s) as unsafe. sql/sql_table.cc: mark CREATE TABLE[with auto_increment column] as unsafe.
| * | | | | | Backout the patch for bug#11758263.Rohit Kalhans2012-02-082-38/+19
| | | | | | |
| * | | | | | BUG#11758263 50440: MARK UNORDERED UPDATE WITH AUTOINC UNSAFERohit Kalhans2012-02-082-19/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Statements that write to tables with auto_increment columns based on the selection from another table, may lead to master and slave going out of sync, as the order in which the rows are retrived from the table may differ on master and slave. Solution: We mark writing to a table with auto_increment table as unsafe. This will cause the execution of such statements to throw a warning and forces the statement to be logged in ROW if the logging format is mixed. Changes: 1. All the statements that writes to a table with auto_increment column(s) based on the rows fetched from another table, will now be unsafe. 2. CREATE TABLE with SELECT will now be unsafe. sql/share/errmsg-utf8.txt: Added new Warning messages sql/sql_base.cc: created a new function that checks for select + write on a autoinc table made all such statements to be unsafe. sql/sql_parse.cc: made create autoincremnet tabble + select unsafe
* | | | | | | merge with mysql-5.5.21Sergei Golubchik2012-03-092-8/+17
|\ \ \ \ \ \ \ | |/ / / / / /
| * | | | | | Bug#12872804 - 62155: BINLOG.BINLOG_STM_UNSAFE_WARNING FAILS WHEN RUN WITH ↵Hemant Kumar2012-01-062-8/+17
| |\ \ \ \ \ \ | | | |_|_|_|/ | | |/| | | | | | | | | | | | | | | | | | | | | | | | | --REPEAT=2 Fixed the testcase using timestamp logic while doing grep from the error file.
| | * | | | | Bug#12872804 - 62155: BINLOG.BINLOG_STM_UNSAFE_WARNING FAILS WHEN RUN WITH ↵Hemant Kumar2012-01-062-8/+21
| | | |_|_|/ | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | --REPEAT=2 Fixed the testcase using timestamp logic while doing grep from the error file.
* | | | | | overlay support for mysql-test-run and mysqltestSergei Golubchik2012-02-231-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mysql-test-run auto-disables all optional plugins. mysql-test/include/default_client.cnf: no @OPT.plugindir anymore mysql-test/include/default_mysqld.cnf: don't disable plugins manually - mtr can do it better mysql-test/suite/innodb/t/innodb_bug47167.test: mtr now uses suite-dir as an include path mysql-test/suite/innodb/t/innodb_file_format.test: mtr now uses suite-dir as an include path mysql-test/t/partition_binlog.test: this test uses partitions storage/example/mysql-test/mtr/t/source.result: update results. as mysqltest includes the correct overlayed include storage/innobase/handler/ha_innodb.cc: the assert is wrong
* | | | | | remove few obscure, unused, or misused mtr featuresSergei Golubchik2012-02-063-3/+1
| | | | | |
* | | | | | rename debug variable to debug_dbug, to make test pass in release buildsSergei Golubchik2011-12-156-57/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (and to follow the naming conventons). keep old debug variable, but mark it as deprecated.
* | | | | | after merge changes:Sergei Golubchik2011-12-121-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * rename all debugging related command-line options and variables to start from "debug-", and made them all OFF by default. * replace "MySQL" with "MariaDB" in error messages * "Cast ... converted ... integer to it's ... complement" is now a note, not a warning * @@query_cache_strip_comments now has a session scope, not global.
* | | | | | 5.3->5.5 mergeSergei Golubchik2011-11-222-13/+13
|\ \ \ \ \ \ | | |_|/ / / | |/| | | |
| * | | | | fix typo: binlog_annotate_rows_events -> binlog_annotate_row_eventsSergei Golubchik2011-09-232-13/+13
| | | | | |
* | | | | | mysql-5.5.18 mergeSergei Golubchik2011-11-033-0/+88
|\ \ \ \ \ \ | | |/ / / / | |/| | | |