summaryrefslogtreecommitdiff
path: root/mysql-test/suite/binlog
Commit message (Collapse)AuthorAgeFilesLines
* Manual merge from mysql-trunk.Alexander Nozdrin2009-12-1113-1296/+1694
|\ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: - client/mysqltest.cc - mysql-test/collections/default.experimental - mysql-test/suite/rpl/t/disabled.def - sql/mysqld.cc - sql/opt_range.cc - sql/sp.cc - sql/sql_acl.cc - sql/sql_partition.cc - sql/sql_table.cc
| * Manual merge from mysql-trunk-merge.Alexander Nozdrin2009-11-067-0/+299
| |\
| * \ manual merge: mysql-5.1-rep+2-delivery1 --> mysql-5.1-rpl-mergeLuis Soares2009-10-2211-1268/+1693
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts ========= Text conflict in .bzr-mysql/default.conf Text conflict in libmysqld/CMakeLists.txt Text conflict in libmysqld/Makefile.am Text conflict in mysql-test/collections/default.experimental Text conflict in mysql-test/extra/rpl_tests/rpl_row_sp006.test Text conflict in mysql-test/suite/binlog/r/binlog_tmp_table.result Text conflict in mysql-test/suite/rpl/r/rpl_loaddata.result Text conflict in mysql-test/suite/rpl/r/rpl_loaddata_fatal.result Text conflict in mysql-test/suite/rpl/r/rpl_row_create_table.result Text conflict in mysql-test/suite/rpl/r/rpl_row_sp006_InnoDB.result Text conflict in mysql-test/suite/rpl/r/rpl_stm_log.result Text conflict in mysql-test/suite/rpl_ndb/r/rpl_ndb_circular_simplex.result Text conflict in mysql-test/suite/rpl_ndb/r/rpl_ndb_sp006.result Text conflict in mysql-test/t/mysqlbinlog.test Text conflict in sql/CMakeLists.txt Text conflict in sql/Makefile.am Text conflict in sql/log_event_old.cc Text conflict in sql/rpl_rli.cc Text conflict in sql/slave.cc Text conflict in sql/sql_binlog.cc Text conflict in sql/sql_lex.h 21 conflicts encountered. NOTE ==== mysql-5.1-rpl-merge has been made a mirror of mysql-next-mr: - "mysql-5.1-rpl-merge$ bzr pull ../mysql-next-mr" This is the first cset (merge/...) committed after pulling from mysql-next-mr.
| | * | BUG#40611, BUG#44779: reverted in mysql-5.1-rep+2.Luis Soares2009-10-072-100/+0
| | | |
| | * | Backport fixes for the follow testsHe Zhenxing2009-10-022-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | binlog_tmp_table rpl_row_sp006_InnoDB rpl_slave_status
| | * | Backport Post fix of result files after push of BUG#34227He Zhenxing2009-10-021-3/+3
| | | |
| | * | Backport post fix compiler warnings and test failures for BUG#25192 BUG#12190He Zhenxing2009-10-021-3/+16
| | | |
| | * | Backport BUG#12190 CHANGE MASTER has differ path requiremts on ↵He Zhenxing2009-10-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MASTER_LOG_FILE and RELAY_LOG_FILE CHANGE MASTER TO command required the value for RELAY_LOG_FILE to be an absolute path, which was different from the requirement of MASTER_LOG_FILE. This patch fixed the problem by changing the value for RELAY_LOG_FILE to be the basename of the log file as that for MASTER_LOG_FILE.
| | * | merge from 5.1-rpl+2 repo to a local branch with HB and bug@27808 fixesAndrei Elkin2009-10-012-0/+100
| | |\ \
| | | * | BUG#40611: MySQL cannot make a binary log after sequential numberLuis Soares2009-09-292-0/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | beyond unsigned long. BUG#44779: binlog.binlog_max_extension may be causing failure on next test in PB NOTE1: this is the backport to next-mr. NOTE2: already includes patch for BUG#44779. Binlog file extensions would turn into negative numbers once the variable used to hold the value reached maximum for signed long. Consequently, incrementing value to the next (negative) number would lead to .000000 extension, causing the server to fail. This patch addresses this issue by not allowing negative extensions and by returning an error on find_uniq_filename, when the limit is reached. Additionally, warnings are printed to the error log when the limit is approaching. FLUSH LOGS will also report warnings to the user, if the extension number has reached the limit. The limit has been set to 0x7FFFFFFF as the maximum.
| | * | | backporting bug@27808 fixesAndrei Elkin2009-10-013-451/+434
| | | | |
| | * | | WL#342 heartbeatAndrei Elkin2009-09-296-813/+834
| | |/ / | | | | | | | | | | | | backporting from 6.0 code base to 5.1.
| | * | Bug #37221: SET AUTOCOMMIT=1 does not commit binary logMats Kindahl2009-09-232-0/+408
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When setting AUTOCOMMIT=1 after starting a transaction, the binary log did not commit the outstanding transaction. The reason was that the binary log commit function saw the values of the new settings, deciding that there were nothing to commit. Fixed the problem by moving the implicit commit to before the thread option flags were changed, so that the binary log sees the old values of the flags instead of the values they will take after the statement.
| * | | Merge from mysql-trunk-merge.Alexander Nozdrin2009-10-1914-6/+1173
| |\ \ \
| * \ \ \ Manual merge from mysql-trunk-merge.Alexander Nozdrin2009-10-147-44/+85
| |\ \ \ \
| * \ \ \ \ Merge mysql-next-mr --> mysql-trunk-signalMarc Alff2009-09-177-3/+17
| |\ \ \ \ \
| * | | | | | WL#2110 (SIGNAL)Marc Alff2009-09-102-28/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | WL#2265 (RESIGNAL) Manual merge of SIGNAL and RESIGNAL to mysql-trunk-signal, plus required dependencies.
* | | | | | | BUG#47995: Mark system functions as unsafeSven Sandberg2009-11-187-2/+148
| |_|_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Some system functions that could return different values on master and slave were not marked unsafe. In particular: GET_LOCK IS_FREE_LOCK IS_USED_LOCK MASTER_POS_WAIT RELEASE_LOCK SLEEP SYSDATE VERSION Fix: Mark these functions unsafe.
* | | | | | Manual Merge2009-11-032-0/+2
| | | | | |
* | | | | | BUG#42829: manually merged approved bzr bundle from bug report.Luis Soares2009-11-013-0/+133
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts ========= Text conflict in sql/sql_class.cc 1 conflicts encountered.
| * | | | | | BUG#42829: binlogging enabled for all schemas regardless ofLuis Soares2009-09-243-0/+133
| | |_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | binlog-db-db / binlog-ignore-db InnoDB will return an error if statement based replication is used along with transaction isolation level READ-COMMITTED (or weaker), even if the statement in question is filtered out according to the binlog-do-db rules set. In this case, an error should not be printed. This patch addresses this issue by extending the existing check in external_lock to take into account the filter rules before deciding to print an error. Furthermore, it also changes decide_logging_format to take into consideration whether the statement is filtered out from binlog before decision is made.
* | | | | | BUG#34582: FLUSH LOGS does not close and reopen the binlog indexLuis Soares2009-10-202-0/+164
| |_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | file Issuing 'FLUSH LOGS' does not close and reopen indexfile. Instead a SEEK_SET is performed. This patch makes index file to be closed and reopened whenever a rotation happens (FLUSH LOGS is issued or binary log exceeds maximum configured size).
* | | | | Attempt to fix Windows testcase output issueHe Zhenxing2009-10-142-12/+16
| | | | |
* | | | | Bug#46640: output from mysqlbinlog command in 5.1 breaks replication2009-10-142-0/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The BINLOG statement was sharing too much code with the slave SQL thread, introduced with the patch for Bug#32407. This caused statements to be logged with the wrong server_id, the id stored inside the events of the BINLOG statement rather than the id of the running server. Fix by rearranging code a bit so that only relevant parts of the code are executed by the BINLOG statement, and the server_id of the server executing the statements will not be overrided by the server_id stored in the 'format description BINLOG statement'.
* | | | | Bug#47323 : mysqlbinlog --verbose displays bad output when events contain ↵He Zhenxing2009-10-096-0/+243
| | | | | | | | | | | | | | | | | | | | | | | | | subset of columns Commit the non-NDB specific part (originated by frazer) to 5.1 mainline.
* | | | | BUG#47129 fix small bug in testMagnus Blåudd2009-10-081-5/+5
| | | | |
* | | | | MergeMagnus Blåudd2009-10-081-3/+12
| | | | |
* | | | | mysql-5.1-bugteam (local) --> mysql-5.1-bugteamAlfranio Correia2009-10-065-3/+869
|\ \ \ \ \ | |_|_|_|/ |/| | | |
| * | | | BUG#47678 Changes to n-tables that happen early in a trans. are only flushed ↵Alfranio Correia2009-10-063-3/+359
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | upon commit Let - T be a transactional table and N non-transactional table. - B be begin, C commit and R rollback. - N be a statement that accesses and changes only N-tables. - T be a statement that accesses and changes only T-tables. In RBR, changes to N-tables that happen early in a transaction are not immediately flushed upon committing a statement. This behavior may, however, break consistency in the presence of concurrency since changes done to N-tables become immediately visible to other connections. To fix this problem, we do the following: . B N N T C would log - B N C B N C B T C. . B N N T R would log - B N C B N C B T R. Note that we are not preserving history from the master as we are introducing a commit that never happened. However, this seems to be more acceptable than the possibility of breaking consistency in the presence of concurrency.
| * | | | BUG#47287 RBR: replication diff on basic case with txn- and non-txn tables ↵Alfranio Correia2009-10-064-0/+510
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | in a statement Let - T be a transactional table and N non-transactional table. - B be begin, C commit and R rollback. - M be a mixed statement, i.e. a statement that updates both T and N. - M* be a mixed statement that fails while updating either T or N. This patch restore the behavior presented in 5.1.37 for rows either produced in the RBR or MIXED modes, when a M* statement that happened early in a transaction had their changes written to the binary log outside the boundaries of the transaction and wrapped in a BEGIN/ROLLBACK. This was done to keep the slave consistent with with the master as the rollback would keep the changes on N and undo them on T. In particular, we do what follows: . B M* T C would log - B M* R B T C. Note that, we are not preserving history from the master as we are introducing a rollback that never happened. However, this seems to be more acceptable than making the slave diverge. We do not fix the following case: . B T M* C would log B T M* C. The slave will diverge as the changes on T tables that originated from the M statement are rolled back on the master but not on the slave. Unfortunately, we cannot simply rollback the transaction as this would undo any uncommitted changes on T tables. SBR is not considered in this patch because a failing statement is written to the binary along with the error code and a slave executes and then rolls back the statement when it has an associated error code, thus undoing the effects on T. In RBR and MBR, a full-fledged fix will be pushed after the WL 2687.
* | | | | Bug #46998 mysqlbinlog can't output BEGIN even if the database is included ↵2009-09-301-10/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | in a transaction The 'BEGIN/COMMIT/ROLLBACK' log event could be filtered out if the database is not selected by --database option of mysqlbinlog command. This can result in problem if there are some statements in the transaction are not filtered out. To fix the problem, mysqlbinlog will output 'BEGIN/ROLLBACK/COMMIT' in regardless of the database filtering rules.
* | | | | auto-mergeTatiana A. Nurnberg2009-09-292-29/+65
|\ \ \ \ \ | |/ / / /
| * | | | BUG #46572 DROP TEMPORARY table IF EXISTS does not have a consistent ↵2009-09-282-29/+65
| | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | behavior in ROW mode In RBR, 'DROP TEMPORARY TABLE IF EXISTS...' statement is binlogged when the table does not exist. In fact, 'DROP TEMPORARY TABLE ...' statement should never be binlogged in RBR no matter if the table exists or not. This patch addresses this by checking whether we are dropping a temporary table or not, when building the custom drop statement.
* | | | Bug#43746: YACC return wrong query string when parse 'load data infile' sql ↵Tatiana A. Nurnberg2009-09-284-5/+5
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | statement "load data" statements were written to the binlog as a mix of the original statement and bits recreated from parse-info. This relied on implementation details and broke with IGNORE_SPACES and versioned comments. We now completely resynthesize the query for LOAD DATA for binlog (which among other things normalizes them somewhat with regard to case, spaces, etc.). We have already parsed the query properly, so we make use of that rather than mix-and-match string literals and parsed items. This should make us safe with regard to versioned comments, even those spanning multiple tokens. Also no longer affected by IGNORE_SPACES.
* | | Bug#46010 main.ctype_gbk_binlog fails sporadically : Table 't2' already exists2009-09-074-1/+5
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | This test case uses mysqlbinlog to dump the content of master-bin.000001, but the content of master-bin.000001 is not that this test needs. MTR runs a lot of test cases on one server, so when this test starts, the current binlog file might not be master-bin.000001, or there are other events are written by tests before. 'RESET MASTER' command must be called at the begin, it ensures that binlog of this test is wrote to master-bin.000001 correctly. Three other tests have the same problem, They were fixed together. mysqlbinlog-cp932 binlog_incident binlog_tmp_table
* | merge mysql-5.0-bugteam --> mysql-5.1-bugteamAlfranio Correia2009-08-282-2/+2
| |
* | BUG#28976 Mixing trans and non-trans tables in one transaction results in ↵Alfranio Correia2009-08-272-0/+10
|/ | | | | | | | | | | | | | | | | | | | | | | | | incorrect binlog Mixing transactional (T) and non-transactional (N) tables on behalf of a transaction may lead to inconsistencies among masters and slaves in STATEMENT mode. The problem stems from the fact that although modifications done to non-transactional tables on behalf of a transaction become immediately visible to other connections they do not immediately get to the binary log and therefore consistency is broken. Although there may be issues in mixing T and M tables in STATEMENT mode, there are safe combinations that clients find useful. In this bug, we fix the following issue. Mixing N and T tables in multi-level (e.g. a statement that fires a trigger) or multi-table table statements (e.g. update t1, t2...) were not handled correctly. In such cases, it was not possible to distinguish when a T table was updated if the sequence of changes was N and T. In a nutshell, just the flag "modified_non_trans_table" was not enough to reflect that both a N and T tables were changed. To circumvent this issue, we check if an engine is registered in the handler's list and changed something which means that a T table was modified. Check WL 2687 for a full-fledged patch that will make the use of either the MIXED or ROW modes completely safe.
* Bug#46265: Can not disable warning about unsafe statements for binary loggingDavi Arnaut2009-07-313-1/+56
| | | | | | | | | | | | | | | | | | | | | | If using statement based replication (SBR), repeatedly calling statements which are unsafe for SBR will cause a warning message to be written to the error for each statement. This might lead to filling up the error log and there is no way to disable this behavior. The solution is to only log these message (about statements unsafe for statement based replication) if the log_warnings option is set. For example: SET GLOBAL LOG_WARNINGS = 0; INSERT INTO t1 VALUES(UUID()); SET GLOBAL LOG_WARNINGS = 1; INSERT INTO t1 VALUES(UUID()); In this case the message will be printed only once: [Warning] Statement may not be safe to log in statement format. Statement: INSERT INTO t1 VALUES(UUID())
* Addition to #45998 fix, result adjusted.Ramil Kalimullin2009-07-151-0/+11
|
* Fix for bug#45998: database crashes when runningRamil Kalimullin2009-07-141-0/+11
| | | | | | | | | | "create as select" (innodb table) Problem: code constructing "CREATE TABLE..." statement doesn't take into account that current database is not set in some cases. That may lead to a server crash. Fix: check if current database is set.
* merge: 5.1-bt bug branch --> 5.1-bt latestLuis Soares2009-06-302-0/+186
|\
| * BUG#42941: --database paramater to mysqlbinlog fails with RBRLuis Soares2009-06-072-0/+186
| | | | | | | | | | | | | | | | | | mysqlbinlog --database parameter was being ignored when processing row events. As such no event filtering would take place. This patch addresses this by deploying a call to shall_skip_database when table_map_events are handled (as these contain also the name of the database). All other rows events referencing the table id for the filtered map event, will also be skipped.
* | BUG#42851: Spurious "Statement is not safe to log in statementLuis Soares2009-06-273-0/+104
| | | | | | | | | | | | | | | | | | | | format." warnings Despite the fact that a statement would be filtered out from binlog, a warning would still be thrown if it was issued with the LIMIT. This patch addresses this issue by checking the filtering rules before printing out the warning.
* | Merge BUG#43263 from 5.0-bugteam to 5.1-bugteamHe Zhenxing2009-05-3112-226/+225
| |
* | Post fix of result file after push of BUG#42415He Zhenxing2009-05-203-64/+64
| |
* | merge: 5.1-bt local bug fix branch --> 5.1-bt up-to-date.Luis Soares2009-05-142-0/+355
|\ \ | |/ |/|
| * BUG#42749: infinite loop writing to row based binlog - processlist showsLuis Soares2009-05-122-0/+355
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "freeing items" The calculation of the table map log event in the event constructor was one byte shorter than what would be actually written. This would lead to a mismatch between the number of bytes written and the event end_log_pos, causing bad event alignment in the binlog (corrupted binlog) or in the transaction cache while fixing positions (MYSQL_BIN_LOG::write_cache). This could lead to impossible to read binlog or even infinite loops in MYSQL_BIN_LOG::write_cache. This patch addresses this issue by correcting the expected event length in the Table_map_log_event constructor, when the field metadata size exceeds 255.
* | Bug #44442: Incident events are silent in mysqlbinlog outputMats Kindahl2009-05-113-0/+40
|/ | | | | | | | | | | | | In the output from mysqlbinlog, incident log events were represented as just a comment. Since the incident log event represents an incident that could cause the contents of the database to change without being logged to the binary log, it means that if the SQL is applied to a server, it could potentially lead to that the databases are out of sync. In order to handle that, this patch adds the statement "RELOAD DATABASE" to the SQL output for the incident log event. This will require a DBA to edit the file and handle the case as apropriate before applying the output to a server.
* BUG#42640 mysqld crashes when unsafe statements are executed ↵Guangbao Ni2009-04-033-56/+93
| | | | | | | | | | | | (STRICT_TRANS_TABLESmode) Mysql server crashes because unsafe statements warning is wrongly elevated to error, which is set the error status of Diagnostics_area of the thread in THD::binlog_query(). Yet the caller believes that binary logging shouldn't touch the status, so it will set the status also later by my_ok(), my_error() or my_message() seperately according to the execution result of the statement or transaction. But the status of Diagnostics_area of the thread is allowed to set only once. Fixed to clear the error wrongly set by binary logging, but keep the warning message.
* Manual merge.Ramil Kalimullin2009-03-252-0/+64
|