Commit 3f4eaf57 authored by unknown's avatar unknown

Bug #30444: 5.0 mysqldump silently allows wrong backup to be taken against a 4.0 database

The combination of --single-transaction and --master-data requires
START TRANSACTION WITH CONSISTENT SNAPSHOT which is available from
mysqld 4.1 on. When trying this against an older server, print
diagnostic, then, if --force is not given, abort.

No test-case given since it would require a mysqld < 4.1.


client/mysqldump.c:
  Bug #30444: 5.0 mysqldump silently allows wrong backup to be taken against a 4.0 database
  
  The combination of --single-transaction and --master-data requires
  START TRANSACTION WITH CONSISTENT SNAPSHOT which is available from
  mysqld 4.1 on. When trying this against an older server, print
  diagnostic, then, if --force is not given, abort.
parent e587830c
...@@ -2428,6 +2428,18 @@ static int start_transaction(MYSQL *mysql_con) ...@@ -2428,6 +2428,18 @@ static int start_transaction(MYSQL *mysql_con)
need the REPEATABLE READ level (not anything lower, for example READ need the REPEATABLE READ level (not anything lower, for example READ
COMMITTED would give one new consistent read per dumped table). COMMITTED would give one new consistent read per dumped table).
*/ */
if ((mysql_get_server_version(mysql_con) < 40100) && opt_master_data)
{
fprintf(stderr, "-- %s: the combination of --single-transaction and "
"--master-data requires a MySQL server version of at least 4.1 "
"(current server's version is %s). %s\n",
ignore_errors ? "Warning" : "Error",
mysql_con->server_version ? mysql_con->server_version : "unknown",
ignore_errors ? "Continuing due to --force, backup may not be consistent across all tables!" : "Aborting.");
if (!ignore_errors)
exit(EX_MYSQLERR);
}
return (mysql_query_with_error_report(mysql_con, 0, return (mysql_query_with_error_report(mysql_con, 0,
"SET SESSION TRANSACTION ISOLATION " "SET SESSION TRANSACTION ISOLATION "
"LEVEL REPEATABLE READ") || "LEVEL REPEATABLE READ") ||
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment