Merge lp:~akopytov/percona-server/backup-locks into lp:percona-server/5.6
- backup-locks
- Merge into 5.6
Status: | Superseded |
---|---|
Proposed branch: | lp:~akopytov/percona-server/backup-locks |
Merge into: | lp:percona-server/5.6 |
Diff against target: |
6338 lines (+5554/-63) 42 files modified
client/client_priv.h (+1/-0) client/mysqldump.c (+83/-3) mysql-test/include/backup_locks_binlog.inc (+803/-0) mysql-test/r/backup_locks.result (+883/-0) mysql-test/r/backup_locks_binlog_mixed.result (+573/-0) mysql-test/r/backup_locks_binlog_row.result (+579/-0) mysql-test/r/backup_locks_binlog_stmt.result (+575/-0) mysql-test/r/backup_locks_mysqldump.result (+143/-0) mysql-test/suite/funcs_1/r/storedproc.result (+3/-1) mysql-test/suite/funcs_1/t/storedproc.test (+1/-1) mysql-test/suite/rpl/r/rpl_backup_locks.result (+34/-0) mysql-test/suite/rpl/t/rpl_backup_locks.test (+95/-0) mysql-test/suite/sys_vars/r/have_backup_locks_basic.result (+11/-0) mysql-test/suite/sys_vars/t/have_backup_locks_basic.test (+7/-0) mysql-test/t/backup_locks.test (+1091/-0) mysql-test/t/backup_locks_binlog_mixed.test (+9/-0) mysql-test/t/backup_locks_binlog_row.test (+9/-0) mysql-test/t/backup_locks_binlog_stmt.test (+9/-0) mysql-test/t/backup_locks_mysqldump.test (+58/-0) sql/binlog.cc (+27/-1) sql/handler.h (+7/-0) sql/lock.cc (+145/-0) sql/log_event.cc (+19/-0) sql/mdl.cc (+54/-23) sql/mdl.h (+2/-0) sql/mysqld.cc (+6/-0) sql/rpl_rli.cc (+24/-0) sql/set_var.h (+1/-0) sql/share/errmsg-utf8.txt (+4/-0) sql/sql_base.cc (+46/-0) sql/sql_class.cc (+8/-0) sql/sql_class.h (+49/-0) sql/sql_cmd.h (+2/-0) sql/sql_insert.cc (+34/-14) sql/sql_parse.cc (+91/-1) sql/sql_reload.cc (+3/-1) sql/sql_yacc.yy (+31/-13) sql/sys_vars.cc (+27/-1) storage/blackhole/ha_blackhole.cc (+1/-1) storage/federated/ha_federated.cc (+2/-1) storage/innobase/handler/ha_innodb.cc (+2/-1) storage/perfschema/ha_perfschema.cc (+2/-1) |
To merge this branch: | bzr merge lp:~akopytov/percona-server/backup-locks |
Related bugs: | |
Related blueprints: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Laurynas Biveinis (community) | Needs Information | ||
Review via email: mp+206724@code.launchpad.net |
This proposal has been superseded by a proposal from 2014-02-20.
Commit message
Description of the change
Implementation of
https:/
The patch introduces 3 new SQL statements, LOCK TABLES FOR BACKUP, LOCK
BINLOG FOR BACKUP and UNLOCK BINLOG, that can be used as a lightweight
alternative to FLUSH TABLES WITH READ LOCK for both physical and logical
backups.
LOCK TABLES FOR BACKUP uses a new MDL lock type to block updates to
all non-transactional tables and DDL statements for all tables. More
specifically, if there’s an active LOCK TABLES FOR BACKUP lock, all
DDL statements and all updates to MyISAM, CSV, MEMORY and ARCHIVE
tables will be blocked in the “Waiting for backup lock” status as
seen in PERFORMANCE_SCHEMA or PROCESSLIST. SELECT queries for all
tables and INSERT/
Federated tables are not affected by LOCK TABLES FOR BACKUP. UNLOCK
TABLES releases the lock acquired by LOCK TABLES FOR BACKUP.
LOCK BINLOG FOR BACKUP uses another MDL lock type to block all
operations that might change either binary log position or
Exec_
to the current SQL thread state on a replication slave) as reported
by SHOW MASTER/SLAVE STATUS. More specifically, a commit will only
be blocked if the binary log is enabled (both globally, and for
connection with sql_log_bin), or if commit is performed by a slave
thread and would advance Exec_Master_
currently blocked on the global binlog lock can be identified by the
“Waiting for binlog lock” status in PROCESSLIST.
UNLOCK BINLOG releases the LOCK BINLOG FOR BACKUP lock, if acquired by
the current connection. The intended use case for XtraBackup is:
LOCK TABLES FOR BACKUP
... copy .frm, MyISAM, CSV, etc. ...
LOCK BINLOG FOR BACKUP
UNLOCK TABLES
... get binlog coordinates ...
... wait for redo log copying to finish ...
UNLOCK BINLOG
Both LOCK TABLES FOR BACKUP and LOCK BINLOG FOR BACKUP have no effect if
the current connection already owns a FTWRL lock, as it’s a more
restrictive lock. If FTWRL is executed in a connection that has acquired
LTFB or LBFB, FTWRL fails with an error.
mysqldump has also been extended with a new option,
--lock-
--single-
TABLES FOR BACKUP before starting the dump operation to prevent
unsafe statements that would normally result in an inconsistent
backup. When used without the --single-
--lock-
--lock-
--lock-
lead to an error. If the backup locks feature is not supported by
the target server, but --lock-for-backup is specified on the command
line, mysqldump aborts with an error.
Alexey Kopytov (akopytov) wrote : | # |
Alexey Kopytov (akopytov) wrote : | # |
Removed a few spurious changes, added missing code comments, updated revision comments.
Laurynas Biveinis (laurynas-biveinis) wrote : | # |
If time is short, this may go in as-is and the review comments can
be addressed in a follow-up as needed.
core:
- Is the binlogging of "ROLLBACK" statement properly protected,
i.e. does the ordered_commit call in MYSQL_BIN_
need the protection too? The testcase would be: start
transaction, write to both InnoDB and MyISAM tables, ROLLBACK.
- I was not able to figure out why do we need binlog lock
protection in Rotate_
- Nor I was able to figure out why dispatch_command added
@@ -1877,6 +1877,14 @@
THD_
+ if (thd->killed == THD::KILL_QUERY ||
+ thd->killed == THD::KILL_TIMEOUT ||
+ thd->killed == THD::KILL_BAD_DATA)
+ {
+ thd->killed= THD::NOT_KILLED;
+ thd->mysys_
+ }
+
thd-
thd-
- Dead store error= 1 in the case of
backup_
- Indentation error at sql_parse.cc line 4233
parser:
- The parser changes cause "unlock" as a statement label to be
treated as ER_PARSE_ERROR instead ER_SP_BADSTATEMENT, as
recorded in funcs_1/storedproc. Which leaves the if
(lex->sphead) ... in unlock symbol rule as dead code. Is that
intentional? It is possible to avoid this by rewriting it as
unlock:
{
LEX *lex= Lex;
if (lex->sphead)
{
}
}
{}
;
unlock_variant:
{
}
| table_or_tables
{
}
;
which is also a bit more localized change against trunk.
mysqldump:
- might be good to include a note in docs that --lock-for-backup
always disables --lock-tables (by --single-
specified or by --lock-for-backup converted to --lock-all-tables
otherwise).
- It looks like mysqldump will issue an unbalanced UNLOCK TABLES
if --single-
to be benign and pre-existing.
MTR:
- possible to do s/STOP SLAVE;--source
include/
include/
some reason you prefer the current form?
- It is of course true that there are many possible test
combinations that could be added to the testcases. I tried to
list a selected few that are single-threaded and IMHO required:
- Need a test that checks for a LTFB/LBFB failure if issued by a
user without RELOAD privilege.
- Need a test for crash-safe slave: slave server binlog on, log
slave updates off, --master-
-
verify that updates from the master are not blocked.
- I was not able to find a test where a single connection w...
Alexey Kopytov (akopytov) wrote : | # |
> Review: Needs Information
>
> If time is short, this may go in as-is and the review comments can
> be addressed in a follow-up as needed.
>
> core:
>
> - Is the binlogging of "ROLLBACK" statement properly protected,
> i.e. does the ordered_commit call in MYSQL_BIN_
> need the protection too? The testcase would be: start
> transaction, write to both InnoDB and MyISAM tables, ROLLBACK.
>
No, ROLLBACK does not need protection for the same reasons as FTWRL
only blocks COMMITs, but not ROLLBACKs.
> - I was not able to figure out why do we need binlog lock
> protection in Rotate_
>
Because it updates master binary coordinates via
Relay_log_
> - Nor I was able to figure out why dispatch_command added
>
> @@ -1877,6 +1877,14 @@
>
> THD_STAGE_INFO(thd, stage_cleaning_up);
>
> + if (thd->killed == THD::KILL_QUERY ||
> + thd->killed == THD::KILL_TIMEOUT ||
> + thd->killed == THD::KILL_BAD_DATA)
> + {
> + thd->killed= THD::NOT_KILLED;
> + thd->mysys_
> + }
> +
> thd->reset_query();
> thd->set_
>
That is required to properly handle errors in situations when a COMMIT is
waiting on a binlog lock and that fails for whatever reasons.
> - Dead store error= 1 in the case of
> backup_
Removed.
>
> - Indentation error at sql_parse.cc line 4233
>
Fixed.
> parser:
>
> - The parser changes cause "unlock" as a statement label to be
> treated as ER_PARSE_ERROR instead ER_SP_BADSTATEMENT, as
> recorded in funcs_1/storedproc. Which leaves the if
> (lex->sphead) ... in unlock symbol rule as dead code. Is that
> intentional? It is possible to avoid this by rewriting it as
>
That is not dead code. That code prevents UNLOCK TABLES/BINLOG from
inclusion into stored procedures. In fact, the current behavior re:
unlock as a statement label is more correct. It is indeed not a
statement that is not allowed in SP, but a genuine parse error.
[...]
> MTR:
>
> - possible to do s/STOP SLAVE;--source
> include/
> include/
> some reason you prefer the current form?
>
For my purposes, both would be exactly the same sequence of commands
executed by MTR.
> - It is of course true that there are many possible test
> combinations that could be added to the testcases. I tried to
> list a selected few that are single-threaded and IMHO required:
>
I have all of that + many more items in my list of things that would be
nice to test. I simply don’t have time for that ATM. Feel free to create
a QA request, and I will chime in with more suggestions.
--
Best regards,
Alexey.
Laurynas Biveinis (laurynas-biveinis) wrote : | # |
> I have all of that + many more items in my list of things that would be
> nice to test. I simply don’t have time for that ATM. Feel free to create
> a QA request, and I will chime in with more suggestions.
OK: https:/
Preview Diff
1 | === modified file 'client/client_priv.h' | |||
2 | --- client/client_priv.h 2013-06-25 13:13:06 +0000 | |||
3 | +++ client/client_priv.h 2014-02-20 11:26:00 +0000 | |||
4 | @@ -104,6 +104,7 @@ | |||
5 | 104 | OPT_SERVER_PUBLIC_KEY, | 104 | OPT_SERVER_PUBLIC_KEY, |
6 | 105 | OPT_ENABLE_CLEARTEXT_PLUGIN, | 105 | OPT_ENABLE_CLEARTEXT_PLUGIN, |
7 | 106 | OPT_INNODB_OPTIMIZE_KEYS, | 106 | OPT_INNODB_OPTIMIZE_KEYS, |
8 | 107 | OPT_LOCK_FOR_BACKUP, | ||
9 | 107 | OPT_MAX_CLIENT_OPTION | 108 | OPT_MAX_CLIENT_OPTION |
10 | 108 | }; | 109 | }; |
11 | 109 | 110 | ||
12 | 110 | 111 | ||
13 | === modified file 'client/mysqldump.c' | |||
14 | --- client/mysqldump.c 2013-12-16 08:45:31 +0000 | |||
15 | +++ client/mysqldump.c 2014-02-20 11:26:00 +0000 | |||
16 | @@ -143,6 +143,7 @@ | |||
17 | 143 | static char * opt_mysql_unix_port=0; | 143 | static char * opt_mysql_unix_port=0; |
18 | 144 | static char *opt_bind_addr = NULL; | 144 | static char *opt_bind_addr = NULL; |
19 | 145 | static int first_error=0; | 145 | static int first_error=0; |
20 | 146 | static uint opt_lock_for_backup= 0; | ||
21 | 146 | static DYNAMIC_STRING extended_row; | 147 | static DYNAMIC_STRING extended_row; |
22 | 147 | #include <sslopt-vars.h> | 148 | #include <sslopt-vars.h> |
23 | 148 | FILE *md_result_file= 0; | 149 | FILE *md_result_file= 0; |
24 | @@ -247,6 +248,11 @@ | |||
25 | 247 | "Adds 'STOP SLAVE' prior to 'CHANGE MASTER' and 'START SLAVE' to bottom of dump.", | 248 | "Adds 'STOP SLAVE' prior to 'CHANGE MASTER' and 'START SLAVE' to bottom of dump.", |
26 | 248 | &opt_slave_apply, &opt_slave_apply, 0, GET_BOOL, NO_ARG, | 249 | &opt_slave_apply, &opt_slave_apply, 0, GET_BOOL, NO_ARG, |
27 | 249 | 0, 0, 0, 0, 0, 0}, | 250 | 0, 0, 0, 0, 0, 0}, |
28 | 251 | {"lock-for-backup", OPT_LOCK_FOR_BACKUP, "Use lightweight metadata locks " | ||
29 | 252 | "to block updates to non-transactional tables and DDL to all tables. " | ||
30 | 253 | "This works only with --single-transaction, otherwise this option is " | ||
31 | 254 | "automatically converted to --lock-all-tables.", &opt_lock_for_backup, | ||
32 | 255 | &opt_lock_for_backup, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, | ||
33 | 250 | {"bind-address", 0, "IP address to bind to.", | 256 | {"bind-address", 0, "IP address to bind to.", |
34 | 251 | (uchar**) &opt_bind_addr, (uchar**) &opt_bind_addr, 0, GET_STR, | 257 | (uchar**) &opt_bind_addr, (uchar**) &opt_bind_addr, 0, GET_STR, |
35 | 252 | REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, | 258 | REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, |
36 | @@ -995,6 +1001,23 @@ | |||
37 | 995 | return(EX_USAGE); | 1001 | return(EX_USAGE); |
38 | 996 | } | 1002 | } |
39 | 997 | 1003 | ||
40 | 1004 | if (opt_lock_for_backup && opt_lock_all_tables) | ||
41 | 1005 | { | ||
42 | 1006 | fprintf(stderr, "%s: You can't use --lock-for-backup and " | ||
43 | 1007 | "--lock-all-tables at the same time.\n", my_progname); | ||
44 | 1008 | return(EX_USAGE); | ||
45 | 1009 | } | ||
46 | 1010 | |||
47 | 1011 | /* | ||
48 | 1012 | Convert --lock-for-backup to --lock-all-tables if --single-transaction is | ||
49 | 1013 | not specified. | ||
50 | 1014 | */ | ||
51 | 1015 | if (!opt_single_transaction && opt_lock_for_backup) | ||
52 | 1016 | { | ||
53 | 1017 | opt_lock_all_tables= 1; | ||
54 | 1018 | opt_lock_for_backup= 0; | ||
55 | 1019 | } | ||
56 | 1020 | |||
57 | 998 | /* We don't delete master logs if slave data option */ | 1021 | /* We don't delete master logs if slave data option */ |
58 | 999 | if (opt_slave_data) | 1022 | if (opt_slave_data) |
59 | 1000 | { | 1023 | { |
60 | @@ -5390,6 +5413,20 @@ | |||
61 | 5390 | "FLUSH TABLES WITH READ LOCK") ); | 5413 | "FLUSH TABLES WITH READ LOCK") ); |
62 | 5391 | } | 5414 | } |
63 | 5392 | 5415 | ||
64 | 5416 | /** | ||
65 | 5417 | Execute LOCK TABLES FOR BACKUP if supported by the server. | ||
66 | 5418 | |||
67 | 5419 | @note If LOCK TABLES FOR BACKUP is not supported by the server, then nothing | ||
68 | 5420 | is done and no error condition is returned. | ||
69 | 5421 | |||
70 | 5422 | @returns whether there was an error or not | ||
71 | 5423 | */ | ||
72 | 5424 | |||
73 | 5425 | static int do_lock_tables_for_backup(MYSQL *mysql_con) | ||
74 | 5426 | { | ||
75 | 5427 | return mysql_query_with_error_report(mysql_con, 0, | ||
76 | 5428 | "LOCK TABLES FOR BACKUP"); | ||
77 | 5429 | } | ||
78 | 5393 | 5430 | ||
79 | 5394 | static int do_unlock_tables(MYSQL *mysql_con) | 5431 | static int do_unlock_tables(MYSQL *mysql_con) |
80 | 5395 | { | 5432 | { |
81 | @@ -6153,6 +6190,35 @@ | |||
82 | 6153 | die(EX_MYSQLERR, DYNAMIC_STR_ERROR_MSG); | 6190 | die(EX_MYSQLERR, DYNAMIC_STR_ERROR_MSG); |
83 | 6154 | } | 6191 | } |
84 | 6155 | 6192 | ||
85 | 6193 | /** | ||
86 | 6194 | Check if the server supports LOCK TABLES FOR BACKUP. | ||
87 | 6195 | |||
88 | 6196 | @returns TRUE if there is support, FALSE otherwise. | ||
89 | 6197 | */ | ||
90 | 6198 | |||
91 | 6199 | static my_bool server_supports_backup_locks(void) | ||
92 | 6200 | { | ||
93 | 6201 | MYSQL_RES *res; | ||
94 | 6202 | MYSQL_ROW row; | ||
95 | 6203 | my_bool rc; | ||
96 | 6204 | |||
97 | 6205 | if (mysql_query_with_error_report(mysql, &res, | ||
98 | 6206 | "SHOW VARIABLES LIKE 'have_backup_locks'")) | ||
99 | 6207 | return FALSE; | ||
100 | 6208 | |||
101 | 6209 | if ((row= mysql_fetch_row(res)) == NULL) | ||
102 | 6210 | { | ||
103 | 6211 | mysql_free_result(res); | ||
104 | 6212 | return FALSE; | ||
105 | 6213 | } | ||
106 | 6214 | |||
107 | 6215 | rc= mysql_num_fields(res) > 1 && !strcmp(row[1], "YES"); | ||
108 | 6216 | |||
109 | 6217 | mysql_free_result(res); | ||
110 | 6218 | |||
111 | 6219 | return rc; | ||
112 | 6220 | } | ||
113 | 6221 | |||
114 | 6156 | 6222 | ||
115 | 6157 | int main(int argc, char **argv) | 6223 | int main(int argc, char **argv) |
116 | 6158 | { | 6224 | { |
117 | @@ -6194,12 +6260,25 @@ | |||
118 | 6194 | if (!path) | 6260 | if (!path) |
119 | 6195 | write_header(md_result_file, *argv); | 6261 | write_header(md_result_file, *argv); |
120 | 6196 | 6262 | ||
121 | 6263 | if (opt_lock_for_backup && !server_supports_backup_locks()) | ||
122 | 6264 | { | ||
123 | 6265 | fprintf(stderr, "%s: Error: --lock-for-backup was specified with " | ||
124 | 6266 | "--single-transaction, but the server does not support " | ||
125 | 6267 | "LOCK TABLES FOR BACKUP.\n", | ||
126 | 6268 | my_progname); | ||
127 | 6269 | goto err; | ||
128 | 6270 | } | ||
129 | 6271 | |||
130 | 6197 | if (opt_slave_data && do_stop_slave_sql(mysql)) | 6272 | if (opt_slave_data && do_stop_slave_sql(mysql)) |
131 | 6198 | goto err; | 6273 | goto err; |
132 | 6199 | 6274 | ||
133 | 6200 | if ((opt_lock_all_tables || opt_master_data || | 6275 | if ((opt_lock_all_tables || opt_master_data || |
136 | 6201 | (opt_single_transaction && flush_logs)) && | 6276 | (opt_single_transaction && flush_logs))) |
137 | 6202 | do_flush_tables_read_lock(mysql)) | 6277 | { |
138 | 6278 | if (do_flush_tables_read_lock(mysql)) | ||
139 | 6279 | goto err; | ||
140 | 6280 | } | ||
141 | 6281 | else if (opt_lock_for_backup && do_lock_tables_for_backup(mysql)) | ||
142 | 6203 | goto err; | 6282 | goto err; |
143 | 6204 | 6283 | ||
144 | 6205 | /* | 6284 | /* |
145 | @@ -6244,7 +6323,8 @@ | |||
146 | 6244 | goto err; | 6323 | goto err; |
147 | 6245 | if (opt_slave_data && do_show_slave_status(mysql)) | 6324 | if (opt_slave_data && do_show_slave_status(mysql)) |
148 | 6246 | goto err; | 6325 | goto err; |
150 | 6247 | if (opt_single_transaction && do_unlock_tables(mysql)) /* unlock but no commit! */ | 6326 | if (opt_single_transaction && (!opt_lock_for_backup || opt_master_data) && |
151 | 6327 | do_unlock_tables(mysql)) /* unlock but no commit! */ | ||
152 | 6248 | goto err; | 6328 | goto err; |
153 | 6249 | 6329 | ||
154 | 6250 | if (opt_alltspcs) | 6330 | if (opt_alltspcs) |
155 | 6251 | 6331 | ||
156 | === added file 'mysql-test/include/backup_locks_binlog.inc' | |||
157 | --- mysql-test/include/backup_locks_binlog.inc 1970-01-01 00:00:00 +0000 | |||
158 | +++ mysql-test/include/backup_locks_binlog.inc 2014-02-20 11:26:00 +0000 | |||
159 | @@ -0,0 +1,803 @@ | |||
160 | 1 | ######################################################################## | ||
161 | 2 | # Binlog-related backup locks tests | ||
162 | 3 | ######################################################################## | ||
163 | 4 | |||
164 | 5 | --source include/have_innodb.inc | ||
165 | 6 | --source include/not_embedded.inc | ||
166 | 7 | --source include/have_archive.inc | ||
167 | 8 | --source include/have_csv.inc | ||
168 | 9 | --source include/have_blackhole.inc | ||
169 | 10 | --source include/have_log_bin.inc | ||
170 | 11 | |||
171 | 12 | SELECT @@binlog_format; | ||
172 | 13 | |||
173 | 14 | RESET MASTER; | ||
174 | 15 | |||
175 | 16 | SHOW VARIABLES LIKE 'have_backup_locks'; | ||
176 | 17 | |||
177 | 18 | --echo #----------------------------------------------------------------------- | ||
178 | 19 | --echo # Setup | ||
179 | 20 | --echo #----------------------------------------------------------------------- | ||
180 | 21 | |||
181 | 22 | # Save the initial number of concurrent sessions. | ||
182 | 23 | --source include/count_sessions.inc | ||
183 | 24 | |||
184 | 25 | CREATE TABLE t_innodb(a INT NOT NULL, KEY (a)) ENGINE=InnoDB; | ||
185 | 26 | CREATE TABLE t_myisam(a INT NOT NULL, KEY (a)) ENGINE=MyISAM; | ||
186 | 27 | CREATE TABLE t_memory(a INT NOT NULL, KEY (a)) ENGINE=MEMORY; | ||
187 | 28 | CREATE TABLE t_csv(a INT NOT NULL) ENGINE=CSV; | ||
188 | 29 | CREATE TABLE t_blackhole(a INT NOT NULL, KEY (a)) ENGINE=BLACKHOLE; | ||
189 | 30 | CREATE TABLE t_archive(a INT NOT NULL) ENGINE=ARCHIVE; | ||
190 | 31 | |||
191 | 32 | CREATE VIEW v_innodb AS SELECT * FROM t_innodb; | ||
192 | 33 | CREATE VIEW v_myisam AS SELECT * FROM t_myisam; | ||
193 | 34 | CREATE VIEW v_memory AS SELECT * FROM t_memory; | ||
194 | 35 | CREATE VIEW v_csv AS SELECT * FROM t_csv; | ||
195 | 36 | CREATE VIEW v_blackhole AS SELECT * FROM t_blackhole; | ||
196 | 37 | CREATE VIEW v_archive AS SELECT * FROM t_archive; | ||
197 | 38 | |||
198 | 39 | --echo #----------------------------------------------------------------------- | ||
199 | 40 | --echo # Single-threaded tests | ||
200 | 41 | --echo #----------------------------------------------------------------------- | ||
201 | 42 | |||
202 | 43 | # | ||
203 | 44 | # LBFB + DML/DDL in the same connection | ||
204 | 45 | # | ||
205 | 46 | |||
206 | 47 | LOCK BINLOG FOR BACKUP; | ||
207 | 48 | |||
208 | 49 | DELETE FROM t_innodb; | ||
209 | 50 | INSERT INTO t_innodb VALUES(0); | ||
210 | 51 | UPDATE t_innodb SET a = 1; | ||
211 | 52 | REPLACE INTO t_innodb VALUES(1); | ||
212 | 53 | SELECT * from t_innodb; | ||
213 | 54 | HANDLER t_innodb OPEN; | ||
214 | 55 | HANDLER t_innodb READ a FIRST; | ||
215 | 56 | HANDLER t_innodb CLOSE; | ||
216 | 57 | |||
217 | 58 | DELETE FROM t_myisam; | ||
218 | 59 | INSERT INTO t_myisam VALUES(0); | ||
219 | 60 | UPDATE t_myisam SET a = 1; | ||
220 | 61 | REPLACE INTO t_myisam VALUES(1); | ||
221 | 62 | SELECT * from t_myisam; | ||
222 | 63 | HANDLER t_myisam OPEN; | ||
223 | 64 | HANDLER t_myisam READ a FIRST; | ||
224 | 65 | HANDLER t_myisam CLOSE; | ||
225 | 66 | |||
226 | 67 | DELETE FROM t_memory; | ||
227 | 68 | INSERT INTO t_memory VALUES(0); | ||
228 | 69 | UPDATE t_memory SET a = 1; | ||
229 | 70 | REPLACE INTO t_memory VALUES(1); | ||
230 | 71 | SELECT * from t_memory; | ||
231 | 72 | |||
232 | 73 | DELETE FROM t_archive; | ||
233 | 74 | INSERT INTO t_archive VALUES(0); | ||
234 | 75 | SELECT * from t_archive; | ||
235 | 76 | |||
236 | 77 | DELETE FROM t_csv; | ||
237 | 78 | INSERT INTO t_csv VALUES(0); | ||
238 | 79 | UPDATE t_csv SET a = 1; | ||
239 | 80 | REPLACE INTO t_csv VALUES(1); | ||
240 | 81 | SELECT * from t_csv; | ||
241 | 82 | |||
242 | 83 | DELETE FROM t_blackhole; | ||
243 | 84 | INSERT INTO t_blackhole VALUES(0); | ||
244 | 85 | UPDATE t_blackhole SET a = 1; | ||
245 | 86 | REPLACE INTO t_blackhole VALUES(1); | ||
246 | 87 | SELECT * from t_blackhole; | ||
247 | 88 | |||
248 | 89 | CREATE TABLE tt_innodb(a INT NOT NULL) ENGINE=InnoDB; | ||
249 | 90 | CREATE TABLE tt_myisam(a INT NOT NULL) ENGINE=MyISAM; | ||
250 | 91 | CREATE TABLE tt_memory(a INT NOT NULL) ENGINE=MEMORY; | ||
251 | 92 | CREATE TABLE tt_csv(a INT NOT NULL) ENGINE=CSV; | ||
252 | 93 | CREATE TABLE tt_blackhole(a INT NOT NULL) ENGINE=BLACKHOLE; | ||
253 | 94 | CREATE TABLE tt_archive(a INT NOT NULL) ENGINE=ARCHIVE; | ||
254 | 95 | |||
255 | 96 | DROP TABLE tt_innodb; | ||
256 | 97 | DROP TABLE tt_myisam; | ||
257 | 98 | DROP TABLE tt_memory; | ||
258 | 99 | DROP TABLE tt_csv; | ||
259 | 100 | DROP TABLE tt_blackhole; | ||
260 | 101 | DROP TABLE tt_archive; | ||
261 | 102 | |||
262 | 103 | --error ER_BAD_TABLE_ERROR | ||
263 | 104 | DROP TABLE non_existing; | ||
264 | 105 | |||
265 | 106 | TRUNCATE TABLE t_innodb; | ||
266 | 107 | TRUNCATE TABLE t_myisam; | ||
267 | 108 | TRUNCATE TABLE t_memory; | ||
268 | 109 | TRUNCATE TABLE t_csv; | ||
269 | 110 | TRUNCATE TABLE t_blackhole; | ||
270 | 111 | |||
271 | 112 | RENAME TABLE t_innodb TO tmp, tmp TO t_innodb; | ||
272 | 113 | RENAME TABLE t_myisam TO tmp, tmp TO t_myisam; | ||
273 | 114 | RENAME TABLE t_memory TO tmp, tmp TO t_memory; | ||
274 | 115 | RENAME TABLE t_csv TO tmp, tmp TO t_csv; | ||
275 | 116 | RENAME TABLE t_blackhole TO tmp, tmp TO t_blackhole; | ||
276 | 117 | RENAME TABLE t_archive TO tmp, tmp TO t_archive; | ||
277 | 118 | |||
278 | 119 | ALTER TABLE t_innodb ADD COLUMN b CHAR(10) NOT NULL; | ||
279 | 120 | ALTER TABLE t_innodb DROP COLUMN b; | ||
280 | 121 | ALTER TABLE t_myisam ADD COLUMN b CHAR(10) NOT NULL; | ||
281 | 122 | ALTER TABLE t_myisam DROP COLUMN b; | ||
282 | 123 | ALTER TABLE t_memory ADD COLUMN b CHAR(10) NOT NULL; | ||
283 | 124 | ALTER TABLE t_memory DROP COLUMN b; | ||
284 | 125 | ALTER TABLE t_csv ADD COLUMN b CHAR(10) NOT NULL; | ||
285 | 126 | ALTER TABLE t_csv DROP COLUMN b; | ||
286 | 127 | ALTER TABLE t_blackhole ADD COLUMN b CHAR(10) NOT NULL; | ||
287 | 128 | ALTER TABLE t_blackhole DROP COLUMN b; | ||
288 | 129 | ALTER TABLE t_archive ADD COLUMN b CHAR(10) NOT NULL; | ||
289 | 130 | ALTER TABLE t_archive DROP COLUMN b; | ||
290 | 131 | |||
291 | 132 | ALTER TABLE t_innodb ADD KEY tmp (a); | ||
292 | 133 | ALTER TABLE t_innodb DROP KEY tmp; | ||
293 | 134 | ALTER TABLE t_myisam ADD KEY tmp (a); | ||
294 | 135 | ALTER TABLE t_myisam DROP KEY tmp; | ||
295 | 136 | ALTER TABLE t_memory ADD KEY tmp (a); | ||
296 | 137 | ALTER TABLE t_memory DROP KEY tmp; | ||
297 | 138 | ALTER TABLE t_blackhole ADD KEY tmp (a); | ||
298 | 139 | ALTER TABLE t_blackhole DROP KEY tmp; | ||
299 | 140 | |||
300 | 141 | CREATE DATABASE test1; | ||
301 | 142 | DROP DATABASE test1; | ||
302 | 143 | |||
303 | 144 | delimiter |; | ||
304 | 145 | |||
305 | 146 | CREATE PROCEDURE p1() | ||
306 | 147 | BEGIN | ||
307 | 148 | SELECT 1; | ||
308 | 149 | END| | ||
309 | 150 | |||
310 | 151 | DROP PROCEDURE p1| | ||
311 | 152 | |||
312 | 153 | CREATE FUNCTION f1() RETURNS INT DETERMINISTIC | ||
313 | 154 | BEGIN | ||
314 | 155 | RETURN 1; | ||
315 | 156 | END| | ||
316 | 157 | |||
317 | 158 | DROP FUNCTION f1| | ||
318 | 159 | |||
319 | 160 | delimiter ;| | ||
320 | 161 | |||
321 | 162 | CREATE VIEW v1 AS SELECT * FROM t_innodb; | ||
322 | 163 | DROP VIEW v1; | ||
323 | 164 | |||
324 | 165 | INSERT INTO v_innodb VALUES(1); | ||
325 | 166 | INSERT INTO v_blackhole VALUES(1); | ||
326 | 167 | INSERT INTO v_myisam VALUES(1); | ||
327 | 168 | INSERT INTO v_csv VALUES(1); | ||
328 | 169 | INSERT INTO v_memory VALUES(1); | ||
329 | 170 | INSERT INTO v_archive VALUES(1); | ||
330 | 171 | |||
331 | 172 | UNLOCK BINLOG; | ||
332 | 173 | |||
333 | 174 | # | ||
334 | 175 | # Test incompatibility with delay_key_write=ALL | ||
335 | 176 | # | ||
336 | 177 | SELECT @@delay_key_write; | ||
337 | 178 | |||
338 | 179 | SET GLOBAL delay_key_write=ALL; | ||
339 | 180 | --error ER_OPTION_PREVENTS_STATEMENT | ||
340 | 181 | LOCK TABLES FOR BACKUP; | ||
341 | 182 | |||
342 | 183 | SET GLOBAL delay_key_write=default; | ||
343 | 184 | SELECT @@delay_key_write; | ||
344 | 185 | |||
345 | 186 | # | ||
346 | 187 | # read-only=1 + backup locks | ||
347 | 188 | # | ||
348 | 189 | |||
349 | 190 | SET GLOBAL read_only=1; | ||
350 | 191 | |||
351 | 192 | INSERT INTO t_innodb VALUES(0); | ||
352 | 193 | INSERT INTO t_myisam VALUES(0); | ||
353 | 194 | |||
354 | 195 | LOCK TABLES FOR BACKUP; | ||
355 | 196 | |||
356 | 197 | INSERT INTO t_innodb VALUES(0); | ||
357 | 198 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
358 | 199 | INSERT INTO t_myisam VALUES(0); | ||
359 | 200 | |||
360 | 201 | UNLOCK TABLES; | ||
361 | 202 | |||
362 | 203 | INSERT INTO t_innodb VALUES(0); | ||
363 | 204 | INSERT INTO t_myisam VALUES(0); | ||
364 | 205 | |||
365 | 206 | SET GLOBAL read_only=0; | ||
366 | 207 | |||
367 | 208 | # | ||
368 | 209 | # Test that temporary tables are not affected by backup locks | ||
369 | 210 | # | ||
370 | 211 | LOCK TABLES FOR BACKUP; | ||
371 | 212 | CREATE TEMPORARY TABLE tt_innodb(a INT NOT NULL) ENGINE=InnoDB; | ||
372 | 213 | CREATE TEMPORARY TABLE tt_myisam(a INT NOT NULL) ENGINE=MyISAM; | ||
373 | 214 | CREATE TEMPORARY TABLE tt_memory(a INT NOT NULL) ENGINE=MEMORY; | ||
374 | 215 | CREATE TEMPORARY TABLE tt_csv(a INT NOT NULL) ENGINE=CSV; | ||
375 | 216 | CREATE TEMPORARY TABLE tt_blackhole(a INT NOT NULL) ENGINE=BLACKHOLE; | ||
376 | 217 | CREATE TEMPORARY TABLE tt_archive(a INT NOT NULL) ENGINE=ARCHIVE; | ||
377 | 218 | |||
378 | 219 | INSERT INTO tt_innodb VALUES(5); | ||
379 | 220 | INSERT INTO tt_myisam VALUES(5); | ||
380 | 221 | INSERT INTO tt_memory VALUES(5); | ||
381 | 222 | INSERT INTO tt_csv VALUES(5); | ||
382 | 223 | INSERT INTO tt_blackhole VALUES(5); | ||
383 | 224 | INSERT INTO tt_archive VALUES(5); | ||
384 | 225 | |||
385 | 226 | LOCK BINLOG FOR BACKUP; | ||
386 | 227 | |||
387 | 228 | START TRANSACTION; | ||
388 | 229 | SELECT * FROM tt_archive; | ||
389 | 230 | SELECT * FROM tt_blackhole; | ||
390 | 231 | SELECT * FROM tt_memory; | ||
391 | 232 | SELECT * FROM tt_innodb; | ||
392 | 233 | SELECT * FROM tt_myisam; | ||
393 | 234 | INSERT INTO tt_innodb VALUES(6); | ||
394 | 235 | INSERT INTO tt_myisam VALUES(6); | ||
395 | 236 | INSERT INTO tt_memory VALUES(6); | ||
396 | 237 | INSERT INTO tt_csv VALUES(6); | ||
397 | 238 | INSERT INTO tt_blackhole VALUES(6); | ||
398 | 239 | INSERT INTO tt_archive VALUES(6); | ||
399 | 240 | COMMIT; | ||
400 | 241 | |||
401 | 242 | SELECT * FROM tt_archive; | ||
402 | 243 | SELECT * FROM tt_blackhole; | ||
403 | 244 | SELECT * FROM tt_memory; | ||
404 | 245 | SELECT * FROM tt_innodb; | ||
405 | 246 | SELECT * FROM tt_myisam; | ||
406 | 247 | |||
407 | 248 | DROP TEMPORARY TABLE tt_innodb; | ||
408 | 249 | DROP TEMPORARY TABLE tt_myisam; | ||
409 | 250 | DROP TEMPORARY TABLE tt_memory; | ||
410 | 251 | DROP TEMPORARY TABLE tt_csv; | ||
411 | 252 | DROP TEMPORARY TABLE tt_blackhole; | ||
412 | 253 | DROP TEMPORARY TABLE tt_archive; | ||
413 | 254 | |||
414 | 255 | UNLOCK BINLOG; | ||
415 | 256 | |||
416 | 257 | UNLOCK TABLES; | ||
417 | 258 | |||
418 | 259 | # | ||
419 | 260 | # test that AUTOCOMMIT updates succeed with a BINLOG lock in the same connection with binlog disabled | ||
420 | 261 | # | ||
421 | 262 | |||
422 | 263 | SELECT @@log_bin; | ||
423 | 264 | |||
424 | 265 | LOCK BINLOG FOR BACKUP; | ||
425 | 266 | |||
426 | 267 | INSERT INTO t_innodb VALUES(1); | ||
427 | 268 | INSERT INTO t_myisam VALUES(1); | ||
428 | 269 | |||
429 | 270 | UNLOCK BINLOG; | ||
430 | 271 | |||
431 | 272 | # | ||
432 | 273 | # Log tables | ||
433 | 274 | # | ||
434 | 275 | |||
435 | 276 | SET @old_general_log = @@general_log; | ||
436 | 277 | SET @old_slow_query_log = @@slow_query_log; | ||
437 | 278 | SET @old_log_output = @@log_output; | ||
438 | 279 | SET @old_long_query_time = @@SESSION.long_query_time; | ||
439 | 280 | |||
440 | 281 | SET SESSION long_query_time = 0; | ||
441 | 282 | SET GLOBAL log_output = 'TABLE'; | ||
442 | 283 | SET GLOBAL general_log = ON; | ||
443 | 284 | SET GLOBAL slow_query_log = ON; | ||
444 | 285 | |||
445 | 286 | LOCK TABLES FOR BACKUP; | ||
446 | 287 | |||
447 | 288 | SELECT 1; | ||
448 | 289 | |||
449 | 290 | LOCK BINLOG FOR BACKUP; | ||
450 | 291 | |||
451 | 292 | SELECT 1; | ||
452 | 293 | |||
453 | 294 | UNLOCK BINLOG; | ||
454 | 295 | |||
455 | 296 | UNLOCK TABLES; | ||
456 | 297 | |||
457 | 298 | SET SESSION long_query_time = @old_long_query_time; | ||
458 | 299 | SET GLOBAL log_output = @old_log_output; | ||
459 | 300 | SET GLOBAL slow_query_log = @old_slow_query_log; | ||
460 | 301 | SET GLOBAL general_log = @old_general_log; | ||
461 | 302 | |||
462 | 303 | --echo #----------------------------------------------------------------------- | ||
463 | 304 | --echo # Multi-threaded tests | ||
464 | 305 | --echo #----------------------------------------------------------------------- | ||
465 | 306 | |||
466 | 307 | --echo # connection default | ||
467 | 308 | |||
468 | 309 | CREATE USER user@localhost; | ||
469 | 310 | GRANT ALL PRIVILEGES ON test.* TO user@localhost; | ||
470 | 311 | |||
471 | 312 | --connect(con1,localhost,root,,) | ||
472 | 313 | |||
473 | 314 | --connect(con2,localhost,user,,) | ||
474 | 315 | |||
475 | 316 | --connection default | ||
476 | 317 | LOCK TABLES FOR BACKUP; | ||
477 | 318 | |||
478 | 319 | --connection con1 | ||
479 | 320 | --echo # connection con1 | ||
480 | 321 | |||
481 | 322 | SET SESSION lock_wait_timeout = 1; | ||
482 | 323 | |||
483 | 324 | --error ER_LOCK_WAIT_TIMEOUT | ||
484 | 325 | SET GLOBAL delay_key_write=ALL; | ||
485 | 326 | |||
486 | 327 | SET SESSION lock_wait_timeout = DEFAULT; | ||
487 | 328 | |||
488 | 329 | --connection default | ||
489 | 330 | --echo # connection default | ||
490 | 331 | UNLOCK TABLES; | ||
491 | 332 | |||
492 | 333 | # | ||
493 | 334 | # read-only=1 + backup locks | ||
494 | 335 | # | ||
495 | 336 | |||
496 | 337 | --connection con2 | ||
497 | 338 | --echo # connection con2 | ||
498 | 339 | |||
499 | 340 | START TRANSACTION; | ||
500 | 341 | INSERT INTO t_innodb VALUES(0); | ||
501 | 342 | |||
502 | 343 | --connection default | ||
503 | 344 | --echo # connection default | ||
504 | 345 | |||
505 | 346 | SET GLOBAL read_only=1; | ||
506 | 347 | |||
507 | 348 | --connection con2 | ||
508 | 349 | --echo # connection con2 | ||
509 | 350 | |||
510 | 351 | --error ER_OPTION_PREVENTS_STATEMENT | ||
511 | 352 | COMMIT; | ||
512 | 353 | |||
513 | 354 | --error ER_OPTION_PREVENTS_STATEMENT | ||
514 | 355 | INSERT INTO t_innodb VALUES(0); | ||
515 | 356 | --error ER_OPTION_PREVENTS_STATEMENT | ||
516 | 357 | INSERT INTO t_myisam VALUES(0); | ||
517 | 358 | |||
518 | 359 | --connection con1 | ||
519 | 360 | --echo # connection con1 | ||
520 | 361 | |||
521 | 362 | LOCK TABLES FOR BACKUP; | ||
522 | 363 | |||
523 | 364 | --connection con2 | ||
524 | 365 | --echo # connection con2 | ||
525 | 366 | |||
526 | 367 | --error ER_OPTION_PREVENTS_STATEMENT | ||
527 | 368 | INSERT INTO t_innodb VALUES(0); | ||
528 | 369 | --error ER_OPTION_PREVENTS_STATEMENT | ||
529 | 370 | INSERT INTO t_myisam VALUES(0); | ||
530 | 371 | |||
531 | 372 | --connection default | ||
532 | 373 | --echo # connection default | ||
533 | 374 | |||
534 | 375 | SET GLOBAL read_only=0; | ||
535 | 376 | |||
536 | 377 | --connection con2 | ||
537 | 378 | --echo # connection con2 | ||
538 | 379 | |||
539 | 380 | SET SESSION lock_wait_timeout = 1; | ||
540 | 381 | |||
541 | 382 | INSERT INTO t_innodb VALUES(0); | ||
542 | 383 | --error ER_LOCK_WAIT_TIMEOUT | ||
543 | 384 | INSERT INTO t_myisam VALUES(0); | ||
544 | 385 | |||
545 | 386 | SET SESSION lock_wait_timeout = 0; | ||
546 | 387 | |||
547 | 388 | --connection default | ||
548 | 389 | --echo # connection default | ||
549 | 390 | |||
550 | 391 | SET GLOBAL read_only=1; | ||
551 | 392 | |||
552 | 393 | --connection con2 | ||
553 | 394 | --echo # connection con2 | ||
554 | 395 | |||
555 | 396 | --error ER_OPTION_PREVENTS_STATEMENT | ||
556 | 397 | INSERT INTO t_innodb VALUES(0); | ||
557 | 398 | --error ER_OPTION_PREVENTS_STATEMENT | ||
558 | 399 | INSERT INTO t_myisam VALUES(0); | ||
559 | 400 | |||
560 | 401 | --connection con1 | ||
561 | 402 | --echo # connection con1 | ||
562 | 403 | |||
563 | 404 | UNLOCK TABLES; | ||
564 | 405 | |||
565 | 406 | --connection con2 | ||
566 | 407 | --echo # connection con2 | ||
567 | 408 | |||
568 | 409 | --error ER_OPTION_PREVENTS_STATEMENT | ||
569 | 410 | INSERT INTO t_innodb VALUES(0); | ||
570 | 411 | --error ER_OPTION_PREVENTS_STATEMENT | ||
571 | 412 | INSERT INTO t_myisam VALUES(0); | ||
572 | 413 | |||
573 | 414 | |||
574 | 415 | --connection default | ||
575 | 416 | --echo # connection default | ||
576 | 417 | |||
577 | 418 | SET GLOBAL read_only=0; | ||
578 | 419 | |||
579 | 420 | # | ||
580 | 421 | # Test that temporary tables are not affected by tables lock, but updates that | ||
581 | 422 | # would write into the binary log are blocked by the binlog lock. | ||
582 | 423 | # | ||
583 | 424 | --connection default | ||
584 | 425 | --echo # connection default | ||
585 | 426 | LOCK TABLES FOR BACKUP; | ||
586 | 427 | |||
587 | 428 | --connection con1 | ||
588 | 429 | --echo # connection con1 | ||
589 | 430 | |||
590 | 431 | CREATE TEMPORARY TABLE tt_innodb(a INT NOT NULL) ENGINE=InnoDB; | ||
591 | 432 | CREATE TEMPORARY TABLE tt_myisam(a INT NOT NULL) ENGINE=MyISAM; | ||
592 | 433 | CREATE TEMPORARY TABLE tt_memory(a INT NOT NULL) ENGINE=MEMORY; | ||
593 | 434 | CREATE TEMPORARY TABLE tt_csv(a INT NOT NULL) ENGINE=CSV; | ||
594 | 435 | CREATE TEMPORARY TABLE tt_blackhole(a INT NOT NULL) ENGINE=BLACKHOLE; | ||
595 | 436 | CREATE TEMPORARY TABLE tt_archive(a INT NOT NULL) ENGINE=ARCHIVE; | ||
596 | 437 | |||
597 | 438 | INSERT INTO tt_innodb VALUES(5); | ||
598 | 439 | INSERT INTO tt_myisam VALUES(5); | ||
599 | 440 | INSERT INTO tt_memory VALUES(5); | ||
600 | 441 | INSERT INTO tt_csv VALUES(5); | ||
601 | 442 | INSERT INTO tt_blackhole VALUES(5); | ||
602 | 443 | INSERT INTO tt_archive VALUES(5); | ||
603 | 444 | |||
604 | 445 | --connection default | ||
605 | 446 | --echo # connection default | ||
606 | 447 | LOCK BINLOG FOR BACKUP; | ||
607 | 448 | |||
608 | 449 | --let $orig_binlog_pos= query_get_value(SHOW MASTER STATUS, Position, 1) | ||
609 | 450 | |||
610 | 451 | --connection con1 | ||
611 | 452 | --echo # connection con1 | ||
612 | 453 | |||
613 | 454 | SET SESSION lock_wait_timeout = 1; | ||
614 | 455 | |||
615 | 456 | START TRANSACTION; | ||
616 | 457 | if (`SELECT @@binlog_format = 'STATEMENT'`) | ||
617 | 458 | { | ||
618 | 459 | --error ER_LOCK_WAIT_TIMEOUT | ||
619 | 460 | INSERT INTO tt_myisam VALUES(6); | ||
620 | 461 | } | ||
621 | 462 | if (!`SELECT @@binlog_format = 'STATEMENT'`) | ||
622 | 463 | { | ||
623 | 464 | INSERT INTO tt_myisam VALUES(6); | ||
624 | 465 | } | ||
625 | 466 | |||
626 | 467 | # Updates to temporary tables are not binlogged in the ROW mode | ||
627 | 468 | INSERT INTO tt_innodb VALUES(6); | ||
628 | 469 | SELECT * FROM tt_archive; | ||
629 | 470 | SELECT * FROM tt_blackhole; | ||
630 | 471 | SELECT * FROM tt_memory; | ||
631 | 472 | SELECT * FROM tt_innodb; | ||
632 | 473 | SELECT * FROM tt_myisam; | ||
633 | 474 | SELECT * FROM tt_csv; | ||
634 | 475 | if (`SELECT @@binlog_format = 'STATEMENT'`) | ||
635 | 476 | { | ||
636 | 477 | --error ER_LOCK_WAIT_TIMEOUT | ||
637 | 478 | COMMIT; | ||
638 | 479 | if (!`SELECT @@binlog_format = 'STATEMENT'`) | ||
639 | 480 | { | ||
640 | 481 | COMMIT; | ||
641 | 482 | } | ||
642 | 483 | } | ||
643 | 484 | |||
644 | 485 | --connection default | ||
645 | 486 | --echo # connection default | ||
646 | 487 | |||
647 | 488 | --let $binlog_pos= query_get_value(SHOW MASTER STATUS, Position, 1) | ||
648 | 489 | --disable_query_log | ||
649 | 490 | --eval SELECT $orig_binlog_pos = $binlog_pos AS must_be_1 | ||
650 | 491 | --enable_query_log | ||
651 | 492 | |||
652 | 493 | UNLOCK BINLOG; | ||
653 | 494 | UNLOCK TABLES; | ||
654 | 495 | |||
655 | 496 | --connection con1 | ||
656 | 497 | --echo # connection con1 | ||
657 | 498 | |||
658 | 499 | COMMIT; | ||
659 | 500 | |||
660 | 501 | DROP TEMPORARY TABLE tt_innodb; | ||
661 | 502 | DROP TEMPORARY TABLE tt_myisam; | ||
662 | 503 | DROP TEMPORARY TABLE tt_memory; | ||
663 | 504 | DROP TEMPORARY TABLE tt_csv; | ||
664 | 505 | DROP TEMPORARY TABLE tt_blackhole; | ||
665 | 506 | DROP TEMPORARY TABLE tt_archive; | ||
666 | 507 | |||
667 | 508 | --connection default | ||
668 | 509 | --echo # connection default | ||
669 | 510 | |||
670 | 511 | LOCK BINLOG FOR BACKUP; | ||
671 | 512 | |||
672 | 513 | --let $orig_binlog_pos= query_get_value(SHOW MASTER STATUS, Position, 1) | ||
673 | 514 | |||
674 | 515 | --connection con1 | ||
675 | 516 | --echo # connection con1 | ||
676 | 517 | |||
677 | 518 | # | ||
678 | 519 | # test that AUTOCOMMIT updates are blocked with a BINLOG lock in another | ||
679 | 520 | # connection with binlog enabled | ||
680 | 521 | # | ||
681 | 522 | |||
682 | 523 | SET SESSION lock_wait_timeout = 1; | ||
683 | 524 | |||
684 | 525 | --error ER_LOCK_WAIT_TIMEOUT | ||
685 | 526 | INSERT INTO t_innodb VALUES(1); | ||
686 | 527 | --error ER_LOCK_WAIT_TIMEOUT | ||
687 | 528 | INSERT INTO t_myisam VALUES(1); | ||
688 | 529 | |||
689 | 530 | SET SESSION lock_wait_timeout = DEFAULT; | ||
690 | 531 | |||
691 | 532 | --connection default | ||
692 | 533 | --echo # connection default | ||
693 | 534 | |||
694 | 535 | --let $binlog_pos= query_get_value(SHOW MASTER STATUS, Position, 1) | ||
695 | 536 | --disable_query_log | ||
696 | 537 | --eval SELECT $orig_binlog_pos = $binlog_pos AS must_be_1 | ||
697 | 538 | --enable_query_log | ||
698 | 539 | |||
699 | 540 | UNLOCK BINLOG; | ||
700 | 541 | |||
701 | 542 | # | ||
702 | 543 | # LTFB + DDL / DML in another connection | ||
703 | 544 | # | ||
704 | 545 | |||
705 | 546 | --connection default | ||
706 | 547 | --echo # connection default | ||
707 | 548 | |||
708 | 549 | LOCK BINLOG FOR BACKUP; | ||
709 | 550 | |||
710 | 551 | --let $orig_binlog_pos= query_get_value(SHOW MASTER STATUS, Position, 1) | ||
711 | 552 | |||
712 | 553 | --connection con1 | ||
713 | 554 | --echo # connection con1 | ||
714 | 555 | |||
715 | 556 | SET SESSION lock_wait_timeout = 1; | ||
716 | 557 | |||
717 | 558 | --error ER_LOCK_WAIT_TIMEOUT | ||
718 | 559 | DELETE FROM t_innodb; | ||
719 | 560 | --error ER_LOCK_WAIT_TIMEOUT | ||
720 | 561 | INSERT INTO t_innodb VALUES(0); | ||
721 | 562 | --error ER_LOCK_WAIT_TIMEOUT | ||
722 | 563 | UPDATE t_innodb SET a = 1; | ||
723 | 564 | --error ER_LOCK_WAIT_TIMEOUT | ||
724 | 565 | REPLACE INTO t_innodb VALUES(1); | ||
725 | 566 | SELECT * from t_innodb; | ||
726 | 567 | HANDLER t_innodb OPEN; | ||
727 | 568 | HANDLER t_innodb READ a FIRST; | ||
728 | 569 | HANDLER t_innodb CLOSE; | ||
729 | 570 | |||
730 | 571 | START TRANSACTION; | ||
731 | 572 | SELECT * from t_innodb; | ||
732 | 573 | DELETE FROM t_innodb; | ||
733 | 574 | INSERT INTO t_innodb VALUES(0); | ||
734 | 575 | UPDATE t_innodb SET a = 1; | ||
735 | 576 | REPLACE INTO t_innodb VALUES(1); | ||
736 | 577 | --error ER_LOCK_WAIT_TIMEOUT | ||
737 | 578 | COMMIT; | ||
738 | 579 | |||
739 | 580 | SELECT * FROM t_innodb; | ||
740 | 581 | COMMIT; | ||
741 | 582 | |||
742 | 583 | START TRANSACTION; | ||
743 | 584 | --error ER_LOCK_WAIT_TIMEOUT | ||
744 | 585 | INSERT INTO t_myisam VALUES(1); | ||
745 | 586 | COMMIT; | ||
746 | 587 | |||
747 | 588 | --error ER_LOCK_WAIT_TIMEOUT | ||
748 | 589 | INSERT INTO t_myisam VALUES(0); | ||
749 | 590 | --error ER_LOCK_WAIT_TIMEOUT | ||
750 | 591 | UPDATE t_myisam SET a = 1; | ||
751 | 592 | SELECT * FROM t_myisam; | ||
752 | 593 | HANDLER t_myisam OPEN; | ||
753 | 594 | HANDLER t_myisam READ a FIRST; | ||
754 | 595 | HANDLER t_myisam CLOSE; | ||
755 | 596 | |||
756 | 597 | # Blackhole updates are not binlogged in the ROW mode | ||
757 | 598 | if (`SELECT @@binlog_format = 'ROW'`) | ||
758 | 599 | { | ||
759 | 600 | DELETE FROM t_blackhole; | ||
760 | 601 | } | ||
761 | 602 | if (!`SELECT @@binlog_format = 'ROW'`) | ||
762 | 603 | { | ||
763 | 604 | --error ER_LOCK_WAIT_TIMEOUT | ||
764 | 605 | DELETE FROM t_blackhole; | ||
765 | 606 | } | ||
766 | 607 | --error ER_LOCK_WAIT_TIMEOUT | ||
767 | 608 | INSERT INTO t_blackhole VALUES(0); | ||
768 | 609 | # Blackhole updates are not binlogged in the ROW mode | ||
769 | 610 | if (`SELECT @@binlog_format = 'ROW'`) | ||
770 | 611 | { | ||
771 | 612 | UPDATE t_blackhole SET a = 1; | ||
772 | 613 | } | ||
773 | 614 | if (!`SELECT @@binlog_format = 'ROW'`) | ||
774 | 615 | { | ||
775 | 616 | --error ER_LOCK_WAIT_TIMEOUT | ||
776 | 617 | UPDATE t_blackhole SET a = 1; | ||
777 | 618 | } | ||
778 | 619 | --error ER_LOCK_WAIT_TIMEOUT | ||
779 | 620 | REPLACE INTO t_blackhole VALUES(1); | ||
780 | 621 | SELECT * FROM t_blackhole; | ||
781 | 622 | |||
782 | 623 | --error ER_LOCK_WAIT_TIMEOUT | ||
783 | 624 | CREATE TABLE tt_innodb(a INT NOT NULL) ENGINE=InnoDB; | ||
784 | 625 | |||
785 | 626 | --error ER_LOCK_WAIT_TIMEOUT | ||
786 | 627 | DROP TABLE tt_innodb; | ||
787 | 628 | |||
788 | 629 | --error ER_BAD_TABLE_ERROR | ||
789 | 630 | DROP TABLE non_existing; | ||
790 | 631 | |||
791 | 632 | --error ER_TABLE_EXISTS_ERROR | ||
792 | 633 | CREATE TABLE t_innodb(a INT NOT NULL) ENGINE=InnoDB; | ||
793 | 634 | |||
794 | 635 | --error ER_LOCK_WAIT_TIMEOUT | ||
795 | 636 | TRUNCATE TABLE t_innodb; | ||
796 | 637 | |||
797 | 638 | --error ER_LOCK_WAIT_TIMEOUT | ||
798 | 639 | RENAME TABLE t_innodb TO tmp, tmp to t_innodb; | ||
799 | 640 | |||
800 | 641 | --error ER_LOCK_WAIT_TIMEOUT | ||
801 | 642 | ALTER TABLE t_innodb ADD COLUMN b CHAR(10); | ||
802 | 643 | |||
803 | 644 | --error ER_LOCK_WAIT_TIMEOUT | ||
804 | 645 | ALTER TABLE t_innodb ADD KEY (a); | ||
805 | 646 | |||
806 | 647 | --error ER_LOCK_WAIT_TIMEOUT | ||
807 | 648 | CREATE DATABASE test1; | ||
808 | 649 | |||
809 | 650 | --error ER_LOCK_WAIT_TIMEOUT | ||
810 | 651 | DROP DATABASE test1; | ||
811 | 652 | |||
812 | 653 | --error ER_LOCK_WAIT_TIMEOUT | ||
813 | 654 | CREATE PROCEDURE p1() SELECT 1; | ||
814 | 655 | |||
815 | 656 | --error ER_LOCK_WAIT_TIMEOUT | ||
816 | 657 | DROP PROCEDURE p1; | ||
817 | 658 | |||
818 | 659 | --error ER_LOCK_WAIT_TIMEOUT | ||
819 | 660 | CREATE VIEW v1 AS SELECT * FROM t_innodb; | ||
820 | 661 | |||
821 | 662 | --error ER_LOCK_WAIT_TIMEOUT | ||
822 | 663 | DROP VIEW v1; | ||
823 | 664 | |||
824 | 665 | --error ER_LOCK_WAIT_TIMEOUT | ||
825 | 666 | INSERT INTO v_innodb VALUES(1); | ||
826 | 667 | |||
827 | 668 | --connection default | ||
828 | 669 | --echo # connection default | ||
829 | 670 | |||
830 | 671 | --let $binlog_pos= query_get_value(SHOW MASTER STATUS, Position, 1) | ||
831 | 672 | --disable_query_log | ||
832 | 673 | --eval SELECT $orig_binlog_pos = $binlog_pos AS must_be_1 | ||
833 | 674 | --enable_query_log | ||
834 | 675 | |||
835 | 676 | UNLOCK BINLOG; | ||
836 | 677 | |||
837 | 678 | --connection con1 | ||
838 | 679 | --echo # connection con1 | ||
839 | 680 | |||
840 | 681 | # DDLs are not transactional, so previous DDL statements against t_innodb will | ||
841 | 682 | # be executed despite the error | ||
842 | 683 | SHOW CREATE TABLE t_innodb; | ||
843 | 684 | |||
844 | 685 | DROP TABLE t_innodb; | ||
845 | 686 | CREATE TABLE t_innodb(a INT NOT NULL) ENGINE=InnoDB; | ||
846 | 687 | |||
847 | 688 | --connection default | ||
848 | 689 | --echo # connection default | ||
849 | 690 | |||
850 | 691 | # | ||
851 | 692 | # INSERT DELAYED | ||
852 | 693 | # | ||
853 | 694 | |||
854 | 695 | LOCK BINLOG FOR BACKUP; | ||
855 | 696 | |||
856 | 697 | --let $orig_binlog_pos= query_get_value(SHOW MASTER STATUS, Position, 1) | ||
857 | 698 | |||
858 | 699 | --connection con1 | ||
859 | 700 | --echo # connection con1 | ||
860 | 701 | |||
861 | 702 | if (`SELECT @@binlog_format = 'STATEMENT'`) | ||
862 | 703 | { | ||
863 | 704 | --error ER_LOCK_WAIT_TIMEOUT | ||
864 | 705 | INSERT DELAYED INTO t_myisam VALUES(0); | ||
865 | 706 | } | ||
866 | 707 | if (!`SELECT @@binlog_format = 'STATEMENT'`) | ||
867 | 708 | { | ||
868 | 709 | INSERT DELAYED INTO t_myisam VALUES(0); | ||
869 | 710 | } | ||
870 | 711 | |||
871 | 712 | --connection default | ||
872 | 713 | --echo # connection default | ||
873 | 714 | |||
874 | 715 | if (!`SELECT @@binlog_format = 'STATEMENT'`) | ||
875 | 716 | { | ||
876 | 717 | let $wait_condition= | ||
877 | 718 | SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST | ||
878 | 719 | WHERE STATE = "Waiting for binlog lock" AND | ||
879 | 720 | COMMAND = "Delayed insert"; | ||
880 | 721 | --source include/wait_condition.inc | ||
881 | 722 | } | ||
882 | 723 | |||
883 | 724 | --let $binlog_pos= query_get_value(SHOW MASTER STATUS, Position, 1) | ||
884 | 725 | --disable_query_log | ||
885 | 726 | --eval SELECT $orig_binlog_pos = $binlog_pos AS must_be_1 | ||
886 | 727 | --enable_query_log | ||
887 | 728 | |||
888 | 729 | UNLOCK BINLOG; | ||
889 | 730 | |||
890 | 731 | if (!`SELECT @@binlog_format = 'STATEMENT'`) | ||
891 | 732 | { | ||
892 | 733 | let $wait_condition= | ||
893 | 734 | SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.PROCESSLIST | ||
894 | 735 | WHERE STATE = "Waiting for binlog lock" AND | ||
895 | 736 | COMMAND = "Delayed"; | ||
896 | 737 | --source include/wait_condition.inc | ||
897 | 738 | } | ||
898 | 739 | |||
899 | 740 | SELECT * FROm t_myisam; | ||
900 | 741 | |||
901 | 742 | |||
902 | 743 | # | ||
903 | 744 | # Log tables | ||
904 | 745 | # | ||
905 | 746 | |||
906 | 747 | SET @old_general_log = @@general_log; | ||
907 | 748 | SET @old_slow_query_log = @@slow_query_log; | ||
908 | 749 | SET @old_log_output = @@log_output; | ||
909 | 750 | |||
910 | 751 | SET GLOBAL log_output = 'TABLE'; | ||
911 | 752 | SET GLOBAL general_log = ON; | ||
912 | 753 | SET GLOBAL slow_query_log = ON; | ||
913 | 754 | |||
914 | 755 | LOCK BINLOG FOR BACKUP; | ||
915 | 756 | |||
916 | 757 | --let $orig_binlog_pos= query_get_value(SHOW MASTER STATUS, Position, 1) | ||
917 | 758 | |||
918 | 759 | --connection con1 | ||
919 | 760 | --echo # connection con1 | ||
920 | 761 | |||
921 | 762 | SET @old_long_query_time = @@SESSION.long_query_time; | ||
922 | 763 | SET SESSION long_query_time = 0; | ||
923 | 764 | |||
924 | 765 | SELECT 1; | ||
925 | 766 | |||
926 | 767 | --connection default | ||
927 | 768 | --echo # connection default | ||
928 | 769 | |||
929 | 770 | SELECT 1; | ||
930 | 771 | |||
931 | 772 | --connection con1 | ||
932 | 773 | --echo # connection con1 | ||
933 | 774 | |||
934 | 775 | SET SESSION long_query_time = @old_long_query_time; | ||
935 | 776 | |||
936 | 777 | --connection default | ||
937 | 778 | --echo # connection default | ||
938 | 779 | |||
939 | 780 | --let $binlog_pos= query_get_value(SHOW MASTER STATUS, Position, 1) | ||
940 | 781 | --disable_query_log | ||
941 | 782 | --eval SELECT $orig_binlog_pos = $binlog_pos AS must_be_1 | ||
942 | 783 | --enable_query_log | ||
943 | 784 | |||
944 | 785 | UNLOCK BINLOG; | ||
945 | 786 | |||
946 | 787 | SET GLOBAL log_output = @old_log_output; | ||
947 | 788 | SET GLOBAL slow_query_log = @old_slow_query_log; | ||
948 | 789 | SET GLOBAL general_log = @old_general_log; | ||
949 | 790 | |||
950 | 791 | --echo #----------------------------------------------------------------------- | ||
951 | 792 | --echo # Cleanup | ||
952 | 793 | --echo #----------------------------------------------------------------------- | ||
953 | 794 | |||
954 | 795 | DROP USER user@localhost; | ||
955 | 796 | |||
956 | 797 | --disconnect con1 | ||
957 | 798 | --disconnect con2 | ||
958 | 799 | |||
959 | 800 | --source include/wait_until_count_sessions.inc | ||
960 | 801 | |||
961 | 802 | DROP VIEW v_innodb, v_myisam, v_memory, v_csv, v_blackhole, v_archive; | ||
962 | 803 | DROP TABLE t_innodb, t_myisam, t_memory, t_csv, t_blackhole, t_archive; | ||
963 | 0 | 804 | ||
964 | === added file 'mysql-test/r/backup_locks.result' | |||
965 | --- mysql-test/r/backup_locks.result 1970-01-01 00:00:00 +0000 | |||
966 | +++ mysql-test/r/backup_locks.result 2014-02-20 11:26:00 +0000 | |||
967 | @@ -0,0 +1,883 @@ | |||
968 | 1 | SHOW VARIABLES LIKE 'have_backup_locks'; | ||
969 | 2 | Variable_name Value | ||
970 | 3 | have_backup_locks YES | ||
971 | 4 | #----------------------------------------------------------------------- | ||
972 | 5 | # Setup | ||
973 | 6 | #----------------------------------------------------------------------- | ||
974 | 7 | CREATE TABLE t_innodb(a INT NOT NULL, KEY (a)) ENGINE=InnoDB; | ||
975 | 8 | CREATE TABLE t_myisam(a INT NOT NULL, KEY (a)) ENGINE=MyISAM; | ||
976 | 9 | CREATE TABLE t_memory(a INT NOT NULL, KEY (a)) ENGINE=MEMORY; | ||
977 | 10 | CREATE TABLE t_csv(a INT NOT NULL) ENGINE=CSV; | ||
978 | 11 | CREATE TABLE t_blackhole(a INT NOT NULL, KEY (a)) ENGINE=BLACKHOLE; | ||
979 | 12 | CREATE TABLE t_archive(a INT NOT NULL) ENGINE=ARCHIVE; | ||
980 | 13 | CREATE VIEW v_innodb AS SELECT * FROM t_innodb; | ||
981 | 14 | CREATE VIEW v_myisam AS SELECT * FROM t_myisam; | ||
982 | 15 | CREATE VIEW v_memory AS SELECT * FROM t_memory; | ||
983 | 16 | CREATE VIEW v_csv AS SELECT * FROM t_csv; | ||
984 | 17 | CREATE VIEW v_blackhole AS SELECT * FROM t_blackhole; | ||
985 | 18 | CREATE VIEW v_archive AS SELECT * FROM t_archive; | ||
986 | 19 | #----------------------------------------------------------------------- | ||
987 | 20 | # Basic syntax checks | ||
988 | 21 | #----------------------------------------------------------------------- | ||
989 | 22 | LOCK TABLES t_innodb FOR BACKUP; | ||
990 | 23 | ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FOR BACKUP' at line 1 | ||
991 | 24 | LOCK TABLES t_innodb READ FOR BACKUP; | ||
992 | 25 | ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FOR BACKUP' at line 1 | ||
993 | 26 | LOCK TABLES t_innodb FOR BACKUP READ; | ||
994 | 27 | ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FOR BACKUP READ' at line 1 | ||
995 | 28 | LOCK BINLOG t_innodb FOR BACKUP; | ||
996 | 29 | ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 't_innodb FOR BACKUP' at line 1 | ||
997 | 30 | LOCK BINLOG t_innodb READ FOR BACKUP; | ||
998 | 31 | ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 't_innodb READ FOR BACKUP' at line 1 | ||
999 | 32 | LOCK BINLOG t_innodb FOR BACKUP READ; | ||
1000 | 33 | ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 't_innodb FOR BACKUP READ' at line 1 | ||
1001 | 34 | LOCK TABLES FOR BACKUP; | ||
1002 | 35 | UNLOCK TABLES; | ||
1003 | 36 | LOCK BINLOG FOR BACKUP; | ||
1004 | 37 | UNLOCK BINLOG; | ||
1005 | 38 | #----------------------------------------------------------------------- | ||
1006 | 39 | # No backup locks are allowed in stored routines | ||
1007 | 40 | #----------------------------------------------------------------------- | ||
1008 | 41 | CREATE PROCEDURE p1() | ||
1009 | 42 | BEGIN | ||
1010 | 43 | LOCK TABLES FOR BACKUP; | ||
1011 | 44 | END| | ||
1012 | 45 | ERROR 0A000: LOCK is not allowed in stored procedures | ||
1013 | 46 | CREATE PROCEDURE p2() | ||
1014 | 47 | BEGIN | ||
1015 | 48 | LOCK BINLOG FOR BACKUP; | ||
1016 | 49 | END| | ||
1017 | 50 | ERROR 0A000: LOCK is not allowed in stored procedures | ||
1018 | 51 | CREATE FUNCTION f1() RETURNS INT DETERMINISTIC | ||
1019 | 52 | BEGIN | ||
1020 | 53 | LOCK TABLES FOR BACKUP; | ||
1021 | 54 | RETURN 1; | ||
1022 | 55 | END| | ||
1023 | 56 | ERROR 0A000: LOCK is not allowed in stored procedures | ||
1024 | 57 | CREATE FUNCTION f2() RETURNS INT DETERMINISTIC | ||
1025 | 58 | BEGIN | ||
1026 | 59 | LOCK BINLOG FOR BACKUP; | ||
1027 | 60 | RETURN 1; | ||
1028 | 61 | END| | ||
1029 | 62 | ERROR 0A000: LOCK is not allowed in stored procedures | ||
1030 | 63 | #----------------------------------------------------------------------- | ||
1031 | 64 | # Single-threaded tests | ||
1032 | 65 | #----------------------------------------------------------------------- | ||
1033 | 66 | SET SESSION lock_wait_timeout=1; | ||
1034 | 67 | FLUSH STATUS; | ||
1035 | 68 | LOCK TABLES FOR BACKUP; | ||
1036 | 69 | LOCK TABLES FOR BACKUP; | ||
1037 | 70 | SHOW STATUS LIKE 'Com_lock_tables_for_backup'; | ||
1038 | 71 | Variable_name Value | ||
1039 | 72 | Com_lock_tables_for_backup 2 | ||
1040 | 73 | UNLOCK TABLES; | ||
1041 | 74 | SHOW STATUS LIKE 'Com_unlock_tables'; | ||
1042 | 75 | Variable_name Value | ||
1043 | 76 | Com_unlock_tables 1 | ||
1044 | 77 | LOCK BINLOG FOR BACKUP; | ||
1045 | 78 | LOCK BINLOG FOR BACKUP; | ||
1046 | 79 | SHOW STATUS LIKE 'Com_lock_binlog_for_backup'; | ||
1047 | 80 | Variable_name Value | ||
1048 | 81 | Com_lock_binlog_for_backup 2 | ||
1049 | 82 | UNLOCK BINLOG; | ||
1050 | 83 | SHOW STATUS LIKE 'Com_unlock_binlog'; | ||
1051 | 84 | Variable_name Value | ||
1052 | 85 | Com_unlock_binlog 1 | ||
1053 | 86 | LOCK TABLES FOR BACKUP; | ||
1054 | 87 | DELETE FROM t_innodb; | ||
1055 | 88 | INSERT INTO t_innodb VALUES(0); | ||
1056 | 89 | UPDATE t_innodb SET a = 1; | ||
1057 | 90 | REPLACE INTO t_innodb VALUES(1); | ||
1058 | 91 | SELECT * FROM t_innodb; | ||
1059 | 92 | a | ||
1060 | 93 | 1 | ||
1061 | 94 | 1 | ||
1062 | 95 | HANDLER t_innodb OPEN; | ||
1063 | 96 | HANDLER t_innodb READ a FIRST; | ||
1064 | 97 | a | ||
1065 | 98 | 1 | ||
1066 | 99 | HANDLER t_innodb CLOSE; | ||
1067 | 100 | DELETE FROM t_myisam; | ||
1068 | 101 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1069 | 102 | INSERT INTO t_myisam VALUES(0); | ||
1070 | 103 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1071 | 104 | INSERT DELAYED INTO t_myisam VALUES(0); | ||
1072 | 105 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1073 | 106 | UPDATE t_myisam SET a = 1; | ||
1074 | 107 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1075 | 108 | REPLACE INTO t_myisam VALUES(1); | ||
1076 | 109 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1077 | 110 | SELECT * FROM t_myisam; | ||
1078 | 111 | a | ||
1079 | 112 | HANDLER t_myisam OPEN; | ||
1080 | 113 | HANDLER t_myisam READ a FIRST; | ||
1081 | 114 | a | ||
1082 | 115 | HANDLER t_myisam CLOSE; | ||
1083 | 116 | DELETE FROM t_memory; | ||
1084 | 117 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1085 | 118 | INSERT INTO t_memory VALUES(0); | ||
1086 | 119 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1087 | 120 | INSERT DELAYED INTO t_memory VALUES(0); | ||
1088 | 121 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1089 | 122 | UPDATE t_memory SET a = 1; | ||
1090 | 123 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1091 | 124 | REPLACE INTO t_memory VALUES(1); | ||
1092 | 125 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1093 | 126 | SELECT * FROM t_memory; | ||
1094 | 127 | a | ||
1095 | 128 | DELETE FROM t_archive; | ||
1096 | 129 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1097 | 130 | INSERT INTO t_archive VALUES(0); | ||
1098 | 131 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1099 | 132 | INSERT DELAYED INTO t_archive VALUES(0); | ||
1100 | 133 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1101 | 134 | UPDATE t_archive SET a = 1; | ||
1102 | 135 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1103 | 136 | REPLACE INTO t_archive VALUES(1); | ||
1104 | 137 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1105 | 138 | SELECT * FROM t_archive; | ||
1106 | 139 | a | ||
1107 | 140 | DELETE FROM t_csv; | ||
1108 | 141 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1109 | 142 | INSERT INTO t_csv VALUES(0); | ||
1110 | 143 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1111 | 144 | UPDATE t_csv SET a = 1; | ||
1112 | 145 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1113 | 146 | REPLACE INTO t_csv VALUES(1); | ||
1114 | 147 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1115 | 148 | SELECT * FROM t_csv; | ||
1116 | 149 | a | ||
1117 | 150 | DELETE FROM t_blackhole; | ||
1118 | 151 | INSERT INTO t_blackhole VALUES(0); | ||
1119 | 152 | INSERT DELAYED INTO t_blackhole VALUES(0); | ||
1120 | 153 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1121 | 154 | UPDATE t_blackhole SET a = 1; | ||
1122 | 155 | REPLACE INTO t_blackhole VALUES(1); | ||
1123 | 156 | SELECT * FROM t_blackhole; | ||
1124 | 157 | a | ||
1125 | 158 | CREATE TABLE tt_innodb(a INT NOT NULL) ENGINE=InnoDB; | ||
1126 | 159 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1127 | 160 | CREATE TABLE tt_myisam(a INT NOT NULL) ENGINE=MyISAM; | ||
1128 | 161 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1129 | 162 | CREATE TABLE tt_memory(a INT NOT NULL) ENGINE=MEMORY; | ||
1130 | 163 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1131 | 164 | CREATE TABLE tt_csv(a INT NOT NULL) ENGINE=CSV; | ||
1132 | 165 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1133 | 166 | CREATE TABLE tt_blackhole(a INT NOT NULL) ENGINE=BLACKHOLE; | ||
1134 | 167 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1135 | 168 | CREATE TABLE tt_archive(a INT NOT NULL) ENGINE=ARCHIVE; | ||
1136 | 169 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1137 | 170 | DROP TABLE t_innodb; | ||
1138 | 171 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1139 | 172 | DROP TABLE t_myisam; | ||
1140 | 173 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1141 | 174 | DROP TABLE t_memory; | ||
1142 | 175 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1143 | 176 | DROP TABLE t_csv; | ||
1144 | 177 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1145 | 178 | DROP TABLE t_blackhole; | ||
1146 | 179 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1147 | 180 | DROP TABLE t_archive; | ||
1148 | 181 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1149 | 182 | DROP TABLE non_existing; | ||
1150 | 183 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1151 | 184 | TRUNCATE TABLE t_innodb; | ||
1152 | 185 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1153 | 186 | TRUNCATE TABLE t_myisam; | ||
1154 | 187 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1155 | 188 | TRUNCATE TABLE t_memory; | ||
1156 | 189 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1157 | 190 | TRUNCATE TABLE t_csv; | ||
1158 | 191 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1159 | 192 | TRUNCATE TABLE t_blackhole; | ||
1160 | 193 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1161 | 194 | TRUNCATE TABLE t_archive; | ||
1162 | 195 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1163 | 196 | RENAME TABLE t_innodb TO tmp; | ||
1164 | 197 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1165 | 198 | RENAME TABLE t_myisam TO tmp; | ||
1166 | 199 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1167 | 200 | RENAME TABLE t_memory TO tmp; | ||
1168 | 201 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1169 | 202 | RENAME TABLE t_csv TO tmp; | ||
1170 | 203 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1171 | 204 | RENAME TABLE t_blackhole TO tmp; | ||
1172 | 205 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1173 | 206 | RENAME TABLE t_archive TO tmp; | ||
1174 | 207 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1175 | 208 | ALTER TABLE t_innodb ADD COLUMN b CHAR(10); | ||
1176 | 209 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1177 | 210 | ALTER TABLE t_myisam ADD COLUMN b CHAR(10); | ||
1178 | 211 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1179 | 212 | ALTER TABLE t_memory ADD COLUMN b CHAR(10); | ||
1180 | 213 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1181 | 214 | ALTER TABLE t_csv ADD COLUMN b CHAR(10); | ||
1182 | 215 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1183 | 216 | ALTER TABLE t_blackhole ADD COLUMN b CHAR(10); | ||
1184 | 217 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1185 | 218 | ALTER TABLE t_archive ADD COLUMN b CHAR(10); | ||
1186 | 219 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1187 | 220 | ALTER TABLE t_innodb ADD KEY (a); | ||
1188 | 221 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1189 | 222 | ALTER TABLE t_myisam ADD KEY (a); | ||
1190 | 223 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1191 | 224 | ALTER TABLE t_memory ADD KEY (a); | ||
1192 | 225 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1193 | 226 | ALTER TABLE t_csv ADD KEY (a); | ||
1194 | 227 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1195 | 228 | ALTER TABLE t_blackhole ADD KEY (a); | ||
1196 | 229 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1197 | 230 | ALTER TABLE t_archive ADD KEY (a); | ||
1198 | 231 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1199 | 232 | DROP DATABASE test; | ||
1200 | 233 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1201 | 234 | CREATE DATABASE test1; | ||
1202 | 235 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1203 | 236 | CREATE PROCEDURE p1() | ||
1204 | 237 | BEGIN | ||
1205 | 238 | SELECT 1; | ||
1206 | 239 | END| | ||
1207 | 240 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1208 | 241 | CREATE FUNCTION f1() RETURNS INT DETERMINISTIC | ||
1209 | 242 | BEGIN | ||
1210 | 243 | RETURN 1; | ||
1211 | 244 | END| | ||
1212 | 245 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1213 | 246 | CREATE VIEW v1 AS SELECT * FROM t_innodb; | ||
1214 | 247 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1215 | 248 | INSERT INTO v_innodb VALUES(1); | ||
1216 | 249 | INSERT INTO v_blackhole VALUES(1); | ||
1217 | 250 | INSERT INTO v_myisam VALUES(1); | ||
1218 | 251 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1219 | 252 | INSERT INTO v_csv VALUES(1); | ||
1220 | 253 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1221 | 254 | INSERT INTO v_memory VALUES(1); | ||
1222 | 255 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1223 | 256 | INSERT INTO v_archive VALUES(1); | ||
1224 | 257 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1225 | 258 | UNLOCK TABLES; | ||
1226 | 259 | LOCK BINLOG FOR BACKUP; | ||
1227 | 260 | DELETE FROM t_innodb; | ||
1228 | 261 | INSERT INTO t_innodb VALUES(0); | ||
1229 | 262 | UPDATE t_innodb SET a = 1; | ||
1230 | 263 | REPLACE INTO t_innodb VALUES(1); | ||
1231 | 264 | SELECT * from t_innodb; | ||
1232 | 265 | a | ||
1233 | 266 | 1 | ||
1234 | 267 | 1 | ||
1235 | 268 | HANDLER t_innodb OPEN; | ||
1236 | 269 | HANDLER t_innodb READ a FIRST; | ||
1237 | 270 | a | ||
1238 | 271 | 1 | ||
1239 | 272 | HANDLER t_innodb CLOSE; | ||
1240 | 273 | DELETE FROM t_myisam; | ||
1241 | 274 | INSERT INTO t_myisam VALUES(0); | ||
1242 | 275 | UPDATE t_myisam SET a = 1; | ||
1243 | 276 | REPLACE INTO t_myisam VALUES(1); | ||
1244 | 277 | SELECT * from t_myisam; | ||
1245 | 278 | a | ||
1246 | 279 | 1 | ||
1247 | 280 | 1 | ||
1248 | 281 | HANDLER t_myisam OPEN; | ||
1249 | 282 | HANDLER t_myisam READ a FIRST; | ||
1250 | 283 | a | ||
1251 | 284 | 1 | ||
1252 | 285 | HANDLER t_myisam CLOSE; | ||
1253 | 286 | DELETE FROM t_memory; | ||
1254 | 287 | INSERT INTO t_memory VALUES(0); | ||
1255 | 288 | UPDATE t_memory SET a = 1; | ||
1256 | 289 | REPLACE INTO t_memory VALUES(1); | ||
1257 | 290 | SELECT * from t_memory; | ||
1258 | 291 | a | ||
1259 | 292 | 1 | ||
1260 | 293 | 1 | ||
1261 | 294 | DELETE FROM t_archive; | ||
1262 | 295 | INSERT INTO t_archive VALUES(0); | ||
1263 | 296 | SELECT * from t_archive; | ||
1264 | 297 | a | ||
1265 | 298 | 0 | ||
1266 | 299 | DELETE FROM t_csv; | ||
1267 | 300 | INSERT INTO t_csv VALUES(0); | ||
1268 | 301 | UPDATE t_csv SET a = 1; | ||
1269 | 302 | REPLACE INTO t_csv VALUES(1); | ||
1270 | 303 | SELECT * from t_csv; | ||
1271 | 304 | a | ||
1272 | 305 | 1 | ||
1273 | 306 | 1 | ||
1274 | 307 | DELETE FROM t_blackhole; | ||
1275 | 308 | INSERT INTO t_blackhole VALUES(0); | ||
1276 | 309 | UPDATE t_blackhole SET a = 1; | ||
1277 | 310 | REPLACE INTO t_blackhole VALUES(1); | ||
1278 | 311 | SELECT * from t_blackhole; | ||
1279 | 312 | a | ||
1280 | 313 | CREATE TABLE tt_innodb(a INT NOT NULL) ENGINE=InnoDB; | ||
1281 | 314 | CREATE TABLE tt_myisam(a INT NOT NULL) ENGINE=MyISAM; | ||
1282 | 315 | CREATE TABLE tt_memory(a INT NOT NULL) ENGINE=MEMORY; | ||
1283 | 316 | CREATE TABLE tt_csv(a INT NOT NULL) ENGINE=CSV; | ||
1284 | 317 | CREATE TABLE tt_blackhole(a INT NOT NULL) ENGINE=BLACKHOLE; | ||
1285 | 318 | CREATE TABLE tt_archive(a INT NOT NULL) ENGINE=ARCHIVE; | ||
1286 | 319 | DROP TABLE tt_innodb; | ||
1287 | 320 | DROP TABLE tt_myisam; | ||
1288 | 321 | DROP TABLE tt_memory; | ||
1289 | 322 | DROP TABLE tt_csv; | ||
1290 | 323 | DROP TABLE tt_blackhole; | ||
1291 | 324 | DROP TABLE tt_archive; | ||
1292 | 325 | DROP TABLE non_existing; | ||
1293 | 326 | ERROR 42S02: Unknown table 'test.non_existing' | ||
1294 | 327 | TRUNCATE TABLE t_innodb; | ||
1295 | 328 | TRUNCATE TABLE t_myisam; | ||
1296 | 329 | TRUNCATE TABLE t_memory; | ||
1297 | 330 | TRUNCATE TABLE t_csv; | ||
1298 | 331 | TRUNCATE TABLE t_blackhole; | ||
1299 | 332 | RENAME TABLE t_innodb TO tmp, tmp TO t_innodb; | ||
1300 | 333 | RENAME TABLE t_myisam TO tmp, tmp TO t_myisam; | ||
1301 | 334 | RENAME TABLE t_memory TO tmp, tmp TO t_memory; | ||
1302 | 335 | RENAME TABLE t_csv TO tmp, tmp TO t_csv; | ||
1303 | 336 | RENAME TABLE t_blackhole TO tmp, tmp TO t_blackhole; | ||
1304 | 337 | RENAME TABLE t_archive TO tmp, tmp TO t_archive; | ||
1305 | 338 | ALTER TABLE t_innodb ADD COLUMN b CHAR(10) NOT NULL; | ||
1306 | 339 | ALTER TABLE t_innodb DROP COLUMN b; | ||
1307 | 340 | ALTER TABLE t_myisam ADD COLUMN b CHAR(10) NOT NULL; | ||
1308 | 341 | ALTER TABLE t_myisam DROP COLUMN b; | ||
1309 | 342 | ALTER TABLE t_memory ADD COLUMN b CHAR(10) NOT NULL; | ||
1310 | 343 | ALTER TABLE t_memory DROP COLUMN b; | ||
1311 | 344 | ALTER TABLE t_csv ADD COLUMN b CHAR(10) NOT NULL; | ||
1312 | 345 | ALTER TABLE t_csv DROP COLUMN b; | ||
1313 | 346 | ALTER TABLE t_blackhole ADD COLUMN b CHAR(10) NOT NULL; | ||
1314 | 347 | ALTER TABLE t_blackhole DROP COLUMN b; | ||
1315 | 348 | ALTER TABLE t_archive ADD COLUMN b CHAR(10) NOT NULL; | ||
1316 | 349 | ALTER TABLE t_archive DROP COLUMN b; | ||
1317 | 350 | ALTER TABLE t_innodb ADD KEY tmp (a); | ||
1318 | 351 | Warnings: | ||
1319 | 352 | Note 1831 Duplicate index 'tmp' defined on the table 'test.t_innodb'. This is deprecated and will be disallowed in a future release. | ||
1320 | 353 | ALTER TABLE t_innodb DROP KEY tmp; | ||
1321 | 354 | ALTER TABLE t_myisam ADD KEY tmp (a); | ||
1322 | 355 | Warnings: | ||
1323 | 356 | Note 1831 Duplicate index 'tmp' defined on the table 'test.t_myisam'. This is deprecated and will be disallowed in a future release. | ||
1324 | 357 | ALTER TABLE t_myisam DROP KEY tmp; | ||
1325 | 358 | ALTER TABLE t_memory ADD KEY tmp (a); | ||
1326 | 359 | Warnings: | ||
1327 | 360 | Note 1831 Duplicate index 'tmp' defined on the table 'test.t_memory'. This is deprecated and will be disallowed in a future release. | ||
1328 | 361 | ALTER TABLE t_memory DROP KEY tmp; | ||
1329 | 362 | ALTER TABLE t_blackhole ADD KEY tmp (a); | ||
1330 | 363 | Warnings: | ||
1331 | 364 | Note 1831 Duplicate index 'tmp' defined on the table 'test.t_blackhole'. This is deprecated and will be disallowed in a future release. | ||
1332 | 365 | ALTER TABLE t_blackhole DROP KEY tmp; | ||
1333 | 366 | CREATE DATABASE test1; | ||
1334 | 367 | DROP DATABASE test1; | ||
1335 | 368 | CREATE PROCEDURE p1() | ||
1336 | 369 | BEGIN | ||
1337 | 370 | SELECT 1; | ||
1338 | 371 | END| | ||
1339 | 372 | DROP PROCEDURE p1| | ||
1340 | 373 | CREATE FUNCTION f1() RETURNS INT DETERMINISTIC | ||
1341 | 374 | BEGIN | ||
1342 | 375 | RETURN 1; | ||
1343 | 376 | END| | ||
1344 | 377 | DROP FUNCTION f1| | ||
1345 | 378 | CREATE VIEW v1 AS SELECT * FROM t_innodb; | ||
1346 | 379 | DROP VIEW v1; | ||
1347 | 380 | INSERT INTO v_innodb VALUES(1); | ||
1348 | 381 | INSERT INTO v_blackhole VALUES(1); | ||
1349 | 382 | INSERT INTO v_myisam VALUES(1); | ||
1350 | 383 | INSERT INTO v_csv VALUES(1); | ||
1351 | 384 | INSERT INTO v_memory VALUES(1); | ||
1352 | 385 | INSERT INTO v_archive VALUES(1); | ||
1353 | 386 | UNLOCK BINLOG; | ||
1354 | 387 | SELECT @@delay_key_write; | ||
1355 | 388 | @@delay_key_write | ||
1356 | 389 | ON | ||
1357 | 390 | SET GLOBAL delay_key_write=ALL; | ||
1358 | 391 | LOCK TABLES FOR BACKUP; | ||
1359 | 392 | ERROR HY000: The MySQL server is running with the delay_key_write=ALL option so it cannot execute this statement | ||
1360 | 393 | SET GLOBAL delay_key_write=default; | ||
1361 | 394 | SELECT @@delay_key_write; | ||
1362 | 395 | @@delay_key_write | ||
1363 | 396 | ON | ||
1364 | 397 | SET GLOBAL read_only=1; | ||
1365 | 398 | INSERT INTO t_innodb VALUES(0); | ||
1366 | 399 | INSERT INTO t_myisam VALUES(0); | ||
1367 | 400 | LOCK TABLES FOR BACKUP; | ||
1368 | 401 | INSERT INTO t_innodb VALUES(0); | ||
1369 | 402 | INSERT INTO t_myisam VALUES(0); | ||
1370 | 403 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
1371 | 404 | UNLOCK TABLES; | ||
1372 | 405 | INSERT INTO t_innodb VALUES(0); | ||
1373 | 406 | INSERT INTO t_myisam VALUES(0); | ||
1374 | 407 | SET GLOBAL read_only=0; | ||
1375 | 408 | LOCK TABLES FOR BACKUP; | ||
1376 | 409 | CREATE TEMPORARY TABLE tt_innodb(a INT NOT NULL) ENGINE=InnoDB; | ||
1377 | 410 | CREATE TEMPORARY TABLE tt_myisam(a INT NOT NULL) ENGINE=MyISAM; | ||
1378 | 411 | CREATE TEMPORARY TABLE tt_memory(a INT NOT NULL) ENGINE=MEMORY; | ||
1379 | 412 | CREATE TEMPORARY TABLE tt_csv(a INT NOT NULL) ENGINE=CSV; | ||
1380 | 413 | CREATE TEMPORARY TABLE tt_blackhole(a INT NOT NULL) ENGINE=BLACKHOLE; | ||
1381 | 414 | CREATE TEMPORARY TABLE tt_archive(a INT NOT NULL) ENGINE=ARCHIVE; | ||
1382 | 415 | INSERT INTO tt_innodb VALUES(5); | ||
1383 | 416 | INSERT INTO tt_myisam VALUES(5); | ||
1384 | 417 | INSERT INTO tt_memory VALUES(5); | ||
1385 | 418 | INSERT INTO tt_csv VALUES(5); | ||
1386 | 419 | INSERT INTO tt_blackhole VALUES(5); | ||
1387 | 420 | INSERT INTO tt_archive VALUES(5); | ||
1388 | 421 | LOCK BINLOG FOR BACKUP; | ||
1389 | 422 | START TRANSACTION; | ||
1390 | 423 | SELECT * FROM tt_archive; | ||
1391 | 424 | a | ||
1392 | 425 | 5 | ||
1393 | 426 | SELECT * FROM tt_blackhole; | ||
1394 | 427 | a | ||
1395 | 428 | SELECT * FROM tt_memory; | ||
1396 | 429 | a | ||
1397 | 430 | 5 | ||
1398 | 431 | SELECT * FROM tt_innodb; | ||
1399 | 432 | a | ||
1400 | 433 | 5 | ||
1401 | 434 | SELECT * FROM tt_myisam; | ||
1402 | 435 | a | ||
1403 | 436 | 5 | ||
1404 | 437 | INSERT INTO tt_innodb VALUES(6); | ||
1405 | 438 | INSERT INTO tt_myisam VALUES(6); | ||
1406 | 439 | INSERT INTO tt_memory VALUES(6); | ||
1407 | 440 | INSERT INTO tt_csv VALUES(6); | ||
1408 | 441 | INSERT INTO tt_blackhole VALUES(6); | ||
1409 | 442 | INSERT INTO tt_archive VALUES(6); | ||
1410 | 443 | COMMIT; | ||
1411 | 444 | SELECT * FROM tt_archive; | ||
1412 | 445 | a | ||
1413 | 446 | 5 | ||
1414 | 447 | 6 | ||
1415 | 448 | SELECT * FROM tt_blackhole; | ||
1416 | 449 | a | ||
1417 | 450 | SELECT * FROM tt_memory; | ||
1418 | 451 | a | ||
1419 | 452 | 5 | ||
1420 | 453 | 6 | ||
1421 | 454 | SELECT * FROM tt_innodb; | ||
1422 | 455 | a | ||
1423 | 456 | 5 | ||
1424 | 457 | 6 | ||
1425 | 458 | SELECT * FROM tt_myisam; | ||
1426 | 459 | a | ||
1427 | 460 | 5 | ||
1428 | 461 | 6 | ||
1429 | 462 | DROP TEMPORARY TABLE tt_innodb; | ||
1430 | 463 | DROP TEMPORARY TABLE tt_myisam; | ||
1431 | 464 | DROP TEMPORARY TABLE tt_memory; | ||
1432 | 465 | DROP TEMPORARY TABLE tt_csv; | ||
1433 | 466 | DROP TEMPORARY TABLE tt_blackhole; | ||
1434 | 467 | DROP TEMPORARY TABLE tt_archive; | ||
1435 | 468 | UNLOCK BINLOG; | ||
1436 | 469 | UNLOCK TABLES; | ||
1437 | 470 | SELECT @@log_bin; | ||
1438 | 471 | @@log_bin | ||
1439 | 472 | 0 | ||
1440 | 473 | LOCK BINLOG FOR BACKUP; | ||
1441 | 474 | INSERT INTO t_innodb VALUES(1); | ||
1442 | 475 | INSERT INTO t_myisam VALUES(1); | ||
1443 | 476 | UNLOCK BINLOG; | ||
1444 | 477 | SET @old_general_log = @@general_log; | ||
1445 | 478 | SET @old_slow_query_log = @@slow_query_log; | ||
1446 | 479 | SET @old_log_output = @@log_output; | ||
1447 | 480 | SET @old_long_query_time = @@SESSION.long_query_time; | ||
1448 | 481 | SET SESSION long_query_time = 0; | ||
1449 | 482 | SET GLOBAL log_output = 'TABLE'; | ||
1450 | 483 | SET GLOBAL general_log = ON; | ||
1451 | 484 | SET GLOBAL slow_query_log = ON; | ||
1452 | 485 | LOCK TABLES FOR BACKUP; | ||
1453 | 486 | SELECT 1; | ||
1454 | 487 | 1 | ||
1455 | 488 | 1 | ||
1456 | 489 | LOCK BINLOG FOR BACKUP; | ||
1457 | 490 | SELECT 1; | ||
1458 | 491 | 1 | ||
1459 | 492 | 1 | ||
1460 | 493 | UNLOCK BINLOG; | ||
1461 | 494 | UNLOCK TABLES; | ||
1462 | 495 | SET SESSION long_query_time = @old_long_query_time; | ||
1463 | 496 | SET GLOBAL log_output = @old_log_output; | ||
1464 | 497 | SET GLOBAL slow_query_log = @old_slow_query_log; | ||
1465 | 498 | SET GLOBAL general_log = @old_general_log; | ||
1466 | 499 | SET SESSION lock_wait_timeout=default; | ||
1467 | 500 | #----------------------------------------------------------------------- | ||
1468 | 501 | # Multi-threaded tests | ||
1469 | 502 | #----------------------------------------------------------------------- | ||
1470 | 503 | # connection default | ||
1471 | 504 | SET GLOBAL lock_wait_timeout=1; | ||
1472 | 505 | CREATE USER user@localhost; | ||
1473 | 506 | GRANT ALL PRIVILEGES ON test.* TO user@localhost; | ||
1474 | 507 | LOCK TABLES FOR BACKUP; | ||
1475 | 508 | # connection con1 | ||
1476 | 509 | SET GLOBAL delay_key_write=ALL; | ||
1477 | 510 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
1478 | 511 | # connection default | ||
1479 | 512 | UNLOCK TABLES; | ||
1480 | 513 | # connection con2 | ||
1481 | 514 | START TRANSACTION; | ||
1482 | 515 | INSERT INTO t_innodb VALUES(0); | ||
1483 | 516 | # connection default | ||
1484 | 517 | SET GLOBAL read_only=1; | ||
1485 | 518 | # connection con2 | ||
1486 | 519 | COMMIT; | ||
1487 | 520 | ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement | ||
1488 | 521 | INSERT INTO t_innodb VALUES(0); | ||
1489 | 522 | ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement | ||
1490 | 523 | INSERT INTO t_myisam VALUES(0); | ||
1491 | 524 | ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement | ||
1492 | 525 | # connection con1 | ||
1493 | 526 | LOCK TABLES FOR BACKUP; | ||
1494 | 527 | # connection con2 | ||
1495 | 528 | INSERT INTO t_innodb VALUES(0); | ||
1496 | 529 | ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement | ||
1497 | 530 | INSERT INTO t_myisam VALUES(0); | ||
1498 | 531 | ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement | ||
1499 | 532 | # connection default | ||
1500 | 533 | SET GLOBAL read_only=0; | ||
1501 | 534 | # connection con2 | ||
1502 | 535 | INSERT INTO t_innodb VALUES(0); | ||
1503 | 536 | INSERT INTO t_myisam VALUES(0); | ||
1504 | 537 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
1505 | 538 | # connection default | ||
1506 | 539 | SET GLOBAL read_only=1; | ||
1507 | 540 | # connection con2 | ||
1508 | 541 | INSERT INTO t_innodb VALUES(0); | ||
1509 | 542 | ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement | ||
1510 | 543 | INSERT INTO t_myisam VALUES(0); | ||
1511 | 544 | ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement | ||
1512 | 545 | # connection con1 | ||
1513 | 546 | UNLOCK TABLES; | ||
1514 | 547 | # connection con2 | ||
1515 | 548 | INSERT INTO t_innodb VALUES(0); | ||
1516 | 549 | ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement | ||
1517 | 550 | INSERT INTO t_myisam VALUES(0); | ||
1518 | 551 | ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement | ||
1519 | 552 | # connection default | ||
1520 | 553 | SET GLOBAL read_only=0; | ||
1521 | 554 | # connection default | ||
1522 | 555 | LOCK TABLES FOR BACKUP; | ||
1523 | 556 | # connection con1 | ||
1524 | 557 | CREATE TEMPORARY TABLE tt_innodb(a INT NOT NULL) ENGINE=InnoDB; | ||
1525 | 558 | CREATE TEMPORARY TABLE tt_myisam(a INT NOT NULL) ENGINE=MyISAM; | ||
1526 | 559 | CREATE TEMPORARY TABLE tt_memory(a INT NOT NULL) ENGINE=MEMORY; | ||
1527 | 560 | CREATE TEMPORARY TABLE tt_csv(a INT NOT NULL) ENGINE=CSV; | ||
1528 | 561 | CREATE TEMPORARY TABLE tt_blackhole(a INT NOT NULL) ENGINE=BLACKHOLE; | ||
1529 | 562 | CREATE TEMPORARY TABLE tt_archive(a INT NOT NULL) ENGINE=ARCHIVE; | ||
1530 | 563 | INSERT INTO tt_innodb VALUES(5); | ||
1531 | 564 | INSERT INTO tt_myisam VALUES(5); | ||
1532 | 565 | INSERT INTO tt_memory VALUES(5); | ||
1533 | 566 | INSERT INTO tt_csv VALUES(5); | ||
1534 | 567 | INSERT INTO tt_blackhole VALUES(5); | ||
1535 | 568 | INSERT INTO tt_archive VALUES(5); | ||
1536 | 569 | # connection default | ||
1537 | 570 | LOCK BINLOG FOR BACKUP; | ||
1538 | 571 | # connection con1 | ||
1539 | 572 | START TRANSACTION; | ||
1540 | 573 | SELECT * FROM tt_archive; | ||
1541 | 574 | a | ||
1542 | 575 | 5 | ||
1543 | 576 | SELECT * FROM tt_blackhole; | ||
1544 | 577 | a | ||
1545 | 578 | SELECT * FROM tt_memory; | ||
1546 | 579 | a | ||
1547 | 580 | 5 | ||
1548 | 581 | SELECT * FROM tt_innodb; | ||
1549 | 582 | a | ||
1550 | 583 | 5 | ||
1551 | 584 | SELECT * FROM tt_myisam; | ||
1552 | 585 | a | ||
1553 | 586 | 5 | ||
1554 | 587 | INSERT INTO tt_innodb VALUES(6); | ||
1555 | 588 | INSERT INTO tt_myisam VALUES(6); | ||
1556 | 589 | INSERT INTO tt_memory VALUES(6); | ||
1557 | 590 | INSERT INTO tt_csv VALUES(6); | ||
1558 | 591 | INSERT INTO tt_blackhole VALUES(6); | ||
1559 | 592 | INSERT INTO tt_archive VALUES(6); | ||
1560 | 593 | COMMIT; | ||
1561 | 594 | SELECT * FROM tt_archive; | ||
1562 | 595 | a | ||
1563 | 596 | 5 | ||
1564 | 597 | 6 | ||
1565 | 598 | SELECT * FROM tt_blackhole; | ||
1566 | 599 | a | ||
1567 | 600 | SELECT * FROM tt_memory; | ||
1568 | 601 | a | ||
1569 | 602 | 5 | ||
1570 | 603 | 6 | ||
1571 | 604 | SELECT * FROM tt_innodb; | ||
1572 | 605 | a | ||
1573 | 606 | 5 | ||
1574 | 607 | 6 | ||
1575 | 608 | SELECT * FROM tt_myisam; | ||
1576 | 609 | a | ||
1577 | 610 | 5 | ||
1578 | 611 | 6 | ||
1579 | 612 | DROP TEMPORARY TABLE tt_innodb; | ||
1580 | 613 | DROP TEMPORARY TABLE tt_myisam; | ||
1581 | 614 | DROP TEMPORARY TABLE tt_memory; | ||
1582 | 615 | DROP TEMPORARY TABLE tt_csv; | ||
1583 | 616 | DROP TEMPORARY TABLE tt_blackhole; | ||
1584 | 617 | DROP TEMPORARY TABLE tt_archive; | ||
1585 | 618 | # connection default | ||
1586 | 619 | UNLOCK BINLOG; | ||
1587 | 620 | UNLOCK TABLES; | ||
1588 | 621 | LOCK BINLOG FOR BACKUP; | ||
1589 | 622 | # connection con1 | ||
1590 | 623 | SELECT @@log_bin; | ||
1591 | 624 | @@log_bin | ||
1592 | 625 | 0 | ||
1593 | 626 | INSERT INTO t_innodb VALUES(1); | ||
1594 | 627 | INSERT INTO t_myisam VALUES(1); | ||
1595 | 628 | # connection default | ||
1596 | 629 | UNLOCK BINLOG; | ||
1597 | 630 | # connection default | ||
1598 | 631 | LOCK TABLES FOR BACKUP; | ||
1599 | 632 | # connection con1 | ||
1600 | 633 | DELETE FROM t_innodb; | ||
1601 | 634 | INSERT INTO t_innodb VALUES(0); | ||
1602 | 635 | UPDATE t_innodb SET a = 1; | ||
1603 | 636 | REPLACE INTO t_innodb VALUES(1); | ||
1604 | 637 | SELECT * from t_innodb; | ||
1605 | 638 | a | ||
1606 | 639 | 1 | ||
1607 | 640 | 1 | ||
1608 | 641 | HANDLER t_innodb OPEN; | ||
1609 | 642 | HANDLER t_innodb READ a FIRST; | ||
1610 | 643 | a | ||
1611 | 644 | 1 | ||
1612 | 645 | HANDLER t_innodb CLOSE; | ||
1613 | 646 | INSERT INTO t_myisam VALUES(0); | ||
1614 | 647 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
1615 | 648 | INSERT DELAYED INTO t_myisam VALUES(0); | ||
1616 | 649 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
1617 | 650 | SELECT * FROM t_myisam; | ||
1618 | 651 | a | ||
1619 | 652 | 0 | ||
1620 | 653 | 0 | ||
1621 | 654 | 1 | ||
1622 | 655 | 1 | ||
1623 | 656 | 1 | ||
1624 | 657 | HANDLER t_myisam OPEN; | ||
1625 | 658 | HANDLER t_myisam READ a FIRST; | ||
1626 | 659 | a | ||
1627 | 660 | 0 | ||
1628 | 661 | HANDLER t_myisam CLOSE; | ||
1629 | 662 | INSERT INTO t_memory VALUES(0); | ||
1630 | 663 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
1631 | 664 | SELECT * FROM t_memory; | ||
1632 | 665 | a | ||
1633 | 666 | 1 | ||
1634 | 667 | INSERT INTO t_archive VALUES(0); | ||
1635 | 668 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
1636 | 669 | SELECT * FROM t_archive; | ||
1637 | 670 | a | ||
1638 | 671 | 0 | ||
1639 | 672 | 1 | ||
1640 | 673 | INSERT INTO t_csv VALUES(0); | ||
1641 | 674 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
1642 | 675 | SELECT * FROM t_csv; | ||
1643 | 676 | a | ||
1644 | 677 | 1 | ||
1645 | 678 | DELETE FROM t_blackhole; | ||
1646 | 679 | INSERT INTO t_blackhole VALUES(0); | ||
1647 | 680 | UPDATE t_blackhole SET a = 1; | ||
1648 | 681 | REPLACE INTO t_blackhole VALUES(1); | ||
1649 | 682 | SELECT * FROM t_blackhole; | ||
1650 | 683 | a | ||
1651 | 684 | CREATE TABLE tt_innodb(a INT NOT NULL) ENGINE=InnoDB; | ||
1652 | 685 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
1653 | 686 | DROP TABLE t_innodb; | ||
1654 | 687 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
1655 | 688 | DROP TABLE non_existing; | ||
1656 | 689 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
1657 | 690 | TRUNCATE TABLE t_innodb; | ||
1658 | 691 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
1659 | 692 | RENAME TABLE t_innodb TO tmp; | ||
1660 | 693 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
1661 | 694 | ALTER TABLE t_innodb ADD COLUMN b CHAR(10); | ||
1662 | 695 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
1663 | 696 | ALTER TABLE t_innodb ADD KEY (a); | ||
1664 | 697 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
1665 | 698 | DROP DATABASE test; | ||
1666 | 699 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
1667 | 700 | CREATE DATABASE test1; | ||
1668 | 701 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
1669 | 702 | CREATE PROCEDURE p1() SELECT 1; | ||
1670 | 703 | # connection default | ||
1671 | 704 | KILL QUERY #; | ||
1672 | 705 | # connection con1 | ||
1673 | 706 | ERROR 70100: Query execution was interrupted | ||
1674 | 707 | CREATE FUNCTION f1() RETURNS INT DETERMINISTIC RETURN 1; | ||
1675 | 708 | # connection default | ||
1676 | 709 | KILL QUERY #; | ||
1677 | 710 | # connection con1 | ||
1678 | 711 | ERROR 70100: Query execution was interrupted | ||
1679 | 712 | CREATE VIEW v1 AS SELECT * FROM t_innodb; | ||
1680 | 713 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
1681 | 714 | INSERT INTO v_innodb VALUES(1); | ||
1682 | 715 | INSERT INTO v_blackhole VALUES(1); | ||
1683 | 716 | INSERT INTO v_myisam VALUES(1); | ||
1684 | 717 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
1685 | 718 | # connection default | ||
1686 | 719 | UNLOCK TABLES; | ||
1687 | 720 | LOCK BINLOG FOR BACKUP; | ||
1688 | 721 | # connection con1 | ||
1689 | 722 | DELETE FROM t_innodb; | ||
1690 | 723 | INSERT INTO t_innodb VALUES(0); | ||
1691 | 724 | UPDATE t_innodb SET a = 1; | ||
1692 | 725 | REPLACE INTO t_innodb VALUES(1); | ||
1693 | 726 | SELECT * from t_innodb; | ||
1694 | 727 | a | ||
1695 | 728 | 1 | ||
1696 | 729 | 1 | ||
1697 | 730 | HANDLER t_innodb OPEN; | ||
1698 | 731 | HANDLER t_innodb READ a FIRST; | ||
1699 | 732 | a | ||
1700 | 733 | 1 | ||
1701 | 734 | HANDLER t_innodb CLOSE; | ||
1702 | 735 | DELETE FROM t_myisam; | ||
1703 | 736 | INSERT INTO t_myisam VALUES(0); | ||
1704 | 737 | UPDATE t_myisam SET a = 1; | ||
1705 | 738 | REPLACE INTO t_myisam VALUES(1); | ||
1706 | 739 | SELECT * from t_myisam; | ||
1707 | 740 | a | ||
1708 | 741 | 1 | ||
1709 | 742 | 1 | ||
1710 | 743 | HANDLER t_myisam OPEN; | ||
1711 | 744 | HANDLER t_myisam READ a FIRST; | ||
1712 | 745 | a | ||
1713 | 746 | 1 | ||
1714 | 747 | HANDLER t_myisam CLOSE; | ||
1715 | 748 | DELETE FROM t_memory; | ||
1716 | 749 | INSERT INTO t_memory VALUES(0); | ||
1717 | 750 | UPDATE t_memory SET a = 1; | ||
1718 | 751 | REPLACE INTO t_memory VALUES(1); | ||
1719 | 752 | SELECT * from t_memory; | ||
1720 | 753 | a | ||
1721 | 754 | 1 | ||
1722 | 755 | 1 | ||
1723 | 756 | INSERT INTO t_archive VALUES(0); | ||
1724 | 757 | SELECT * from t_archive; | ||
1725 | 758 | a | ||
1726 | 759 | 0 | ||
1727 | 760 | 1 | ||
1728 | 761 | 0 | ||
1729 | 762 | DELETE FROM t_csv; | ||
1730 | 763 | INSERT INTO t_csv VALUES(0); | ||
1731 | 764 | UPDATE t_csv SET a = 1; | ||
1732 | 765 | REPLACE INTO t_csv VALUES(1); | ||
1733 | 766 | SELECT * from t_csv; | ||
1734 | 767 | a | ||
1735 | 768 | 1 | ||
1736 | 769 | 1 | ||
1737 | 770 | DELETE FROM t_blackhole; | ||
1738 | 771 | INSERT INTO t_blackhole VALUES(0); | ||
1739 | 772 | UPDATE t_blackhole SET a = 1; | ||
1740 | 773 | REPLACE INTO t_blackhole VALUES(1); | ||
1741 | 774 | SELECT * from t_blackhole; | ||
1742 | 775 | a | ||
1743 | 776 | CREATE TABLE tt_innodb(a INT NOT NULL) ENGINE=InnoDB; | ||
1744 | 777 | CREATE TABLE tt_myisam(a INT NOT NULL) ENGINE=MyISAM; | ||
1745 | 778 | CREATE TABLE tt_memory(a INT NOT NULL) ENGINE=MEMORY; | ||
1746 | 779 | CREATE TABLE tt_csv(a INT NOT NULL) ENGINE=CSV; | ||
1747 | 780 | CREATE TABLE tt_blackhole(a INT NOT NULL) ENGINE=BLACKHOLE; | ||
1748 | 781 | CREATE TABLE tt_archive(a INT NOT NULL) ENGINE=ARCHIVE; | ||
1749 | 782 | DROP TABLE tt_innodb; | ||
1750 | 783 | DROP TABLE tt_myisam; | ||
1751 | 784 | DROP TABLE tt_memory; | ||
1752 | 785 | DROP TABLE tt_csv; | ||
1753 | 786 | DROP TABLE tt_blackhole; | ||
1754 | 787 | DROP TABLE tt_archive; | ||
1755 | 788 | DROP TABLE non_existing; | ||
1756 | 789 | ERROR 42S02: Unknown table 'test.non_existing' | ||
1757 | 790 | TRUNCATE TABLE t_innodb; | ||
1758 | 791 | TRUNCATE TABLE t_myisam; | ||
1759 | 792 | TRUNCATE TABLE t_memory; | ||
1760 | 793 | TRUNCATE TABLE t_csv; | ||
1761 | 794 | TRUNCATE TABLE t_blackhole; | ||
1762 | 795 | RENAME TABLE t_innodb TO tmp, tmp TO t_innodb; | ||
1763 | 796 | RENAME TABLE t_myisam TO tmp, tmp TO t_myisam; | ||
1764 | 797 | RENAME TABLE t_memory TO tmp, tmp TO t_memory; | ||
1765 | 798 | RENAME TABLE t_csv TO tmp, tmp TO t_csv; | ||
1766 | 799 | RENAME TABLE t_blackhole TO tmp, tmp TO t_blackhole; | ||
1767 | 800 | RENAME TABLE t_archive TO tmp, tmp TO t_archive; | ||
1768 | 801 | ALTER TABLE t_innodb ADD COLUMN b CHAR(10) NOT NULL; | ||
1769 | 802 | ALTER TABLE t_innodb DROP COLUMN b; | ||
1770 | 803 | ALTER TABLE t_myisam ADD COLUMN b CHAR(10) NOT NULL; | ||
1771 | 804 | ALTER TABLE t_myisam DROP COLUMN b; | ||
1772 | 805 | ALTER TABLE t_memory ADD COLUMN b CHAR(10) NOT NULL; | ||
1773 | 806 | ALTER TABLE t_memory DROP COLUMN b; | ||
1774 | 807 | ALTER TABLE t_csv ADD COLUMN b CHAR(10) NOT NULL; | ||
1775 | 808 | ALTER TABLE t_csv DROP COLUMN b; | ||
1776 | 809 | ALTER TABLE t_blackhole ADD COLUMN b CHAR(10) NOT NULL; | ||
1777 | 810 | ALTER TABLE t_blackhole DROP COLUMN b; | ||
1778 | 811 | ALTER TABLE t_archive ADD COLUMN b CHAR(10) NOT NULL; | ||
1779 | 812 | ALTER TABLE t_archive DROP COLUMN b; | ||
1780 | 813 | ALTER TABLE t_innodb ADD KEY tmp (a); | ||
1781 | 814 | Warnings: | ||
1782 | 815 | Note 1831 Duplicate index 'tmp' defined on the table 'test.t_innodb'. This is deprecated and will be disallowed in a future release. | ||
1783 | 816 | ALTER TABLE t_innodb DROP KEY tmp; | ||
1784 | 817 | ALTER TABLE t_myisam ADD KEY tmp (a); | ||
1785 | 818 | Warnings: | ||
1786 | 819 | Note 1831 Duplicate index 'tmp' defined on the table 'test.t_myisam'. This is deprecated and will be disallowed in a future release. | ||
1787 | 820 | ALTER TABLE t_myisam DROP KEY tmp; | ||
1788 | 821 | ALTER TABLE t_memory ADD KEY tmp (a); | ||
1789 | 822 | Warnings: | ||
1790 | 823 | Note 1831 Duplicate index 'tmp' defined on the table 'test.t_memory'. This is deprecated and will be disallowed in a future release. | ||
1791 | 824 | ALTER TABLE t_memory DROP KEY tmp; | ||
1792 | 825 | ALTER TABLE t_blackhole ADD KEY tmp (a); | ||
1793 | 826 | Warnings: | ||
1794 | 827 | Note 1831 Duplicate index 'tmp' defined on the table 'test.t_blackhole'. This is deprecated and will be disallowed in a future release. | ||
1795 | 828 | ALTER TABLE t_blackhole DROP KEY tmp; | ||
1796 | 829 | CREATE DATABASE test1; | ||
1797 | 830 | DROP DATABASE test1; | ||
1798 | 831 | CREATE PROCEDURE p1() | ||
1799 | 832 | BEGIN | ||
1800 | 833 | SELECT 1; | ||
1801 | 834 | END| | ||
1802 | 835 | DROP PROCEDURE p1| | ||
1803 | 836 | CREATE FUNCTION f1() RETURNS INT DETERMINISTIC | ||
1804 | 837 | BEGIN | ||
1805 | 838 | RETURN 1; | ||
1806 | 839 | END| | ||
1807 | 840 | DROP FUNCTION f1| | ||
1808 | 841 | CREATE VIEW v1 AS SELECT * FROM t_innodb; | ||
1809 | 842 | DROP VIEW v1; | ||
1810 | 843 | INSERT INTO v_innodb VALUES(1); | ||
1811 | 844 | INSERT INTO v_blackhole VALUES(1); | ||
1812 | 845 | INSERT INTO v_myisam VALUES(1); | ||
1813 | 846 | INSERT INTO v_csv VALUES(1); | ||
1814 | 847 | INSERT INTO v_memory VALUES(1); | ||
1815 | 848 | INSERT INTO v_archive VALUES(1); | ||
1816 | 849 | # connection default | ||
1817 | 850 | UNLOCK BINLOG; | ||
1818 | 851 | SET @old_general_log = @@general_log; | ||
1819 | 852 | SET @old_slow_query_log = @@slow_query_log; | ||
1820 | 853 | SET @old_log_output = @@log_output; | ||
1821 | 854 | SET GLOBAL log_output = 'TABLE'; | ||
1822 | 855 | SET GLOBAL general_log = ON; | ||
1823 | 856 | SET GLOBAL slow_query_log = ON; | ||
1824 | 857 | LOCK TABLES FOR BACKUP; | ||
1825 | 858 | # connection con1 | ||
1826 | 859 | SET @old_long_query_time = @@SESSION.long_query_time; | ||
1827 | 860 | SET SESSION long_query_time = 0; | ||
1828 | 861 | SELECT 1; | ||
1829 | 862 | 1 | ||
1830 | 863 | 1 | ||
1831 | 864 | # connection default | ||
1832 | 865 | LOCK BINLOG FOR BACKUP; | ||
1833 | 866 | SELECT 1; | ||
1834 | 867 | 1 | ||
1835 | 868 | 1 | ||
1836 | 869 | # connection con1 | ||
1837 | 870 | SET SESSION long_query_time = @old_long_query_time; | ||
1838 | 871 | # connection default | ||
1839 | 872 | UNLOCK BINLOG; | ||
1840 | 873 | UNLOCK TABLES; | ||
1841 | 874 | SET GLOBAL log_output = @old_log_output; | ||
1842 | 875 | SET GLOBAL slow_query_log = @old_slow_query_log; | ||
1843 | 876 | SET GLOBAL general_log = @old_general_log; | ||
1844 | 877 | #----------------------------------------------------------------------- | ||
1845 | 878 | # Cleanup | ||
1846 | 879 | #----------------------------------------------------------------------- | ||
1847 | 880 | SET GLOBAL lock_wait_timeout=default; | ||
1848 | 881 | DROP USER user@localhost; | ||
1849 | 882 | DROP VIEW v_innodb, v_myisam, v_memory, v_csv, v_blackhole, v_archive; | ||
1850 | 883 | DROP TABLE t_innodb, t_myisam, t_memory, t_csv, t_blackhole, t_archive; | ||
1851 | 0 | 884 | ||
1852 | === added file 'mysql-test/r/backup_locks_binlog_mixed.result' | |||
1853 | --- mysql-test/r/backup_locks_binlog_mixed.result 1970-01-01 00:00:00 +0000 | |||
1854 | +++ mysql-test/r/backup_locks_binlog_mixed.result 2014-02-20 11:26:00 +0000 | |||
1855 | @@ -0,0 +1,573 @@ | |||
1856 | 1 | SET @old_binlog_format=@@binlog_format; | ||
1857 | 2 | SET GLOBAL binlog_format='MIXED'; | ||
1858 | 3 | SET SESSION binlog_format='MIXED'; | ||
1859 | 4 | SELECT @@binlog_format; | ||
1860 | 5 | @@binlog_format | ||
1861 | 6 | MIXED | ||
1862 | 7 | RESET MASTER; | ||
1863 | 8 | SHOW VARIABLES LIKE 'have_backup_locks'; | ||
1864 | 9 | Variable_name Value | ||
1865 | 10 | have_backup_locks YES | ||
1866 | 11 | #----------------------------------------------------------------------- | ||
1867 | 12 | # Setup | ||
1868 | 13 | #----------------------------------------------------------------------- | ||
1869 | 14 | CREATE TABLE t_innodb(a INT NOT NULL, KEY (a)) ENGINE=InnoDB; | ||
1870 | 15 | CREATE TABLE t_myisam(a INT NOT NULL, KEY (a)) ENGINE=MyISAM; | ||
1871 | 16 | CREATE TABLE t_memory(a INT NOT NULL, KEY (a)) ENGINE=MEMORY; | ||
1872 | 17 | CREATE TABLE t_csv(a INT NOT NULL) ENGINE=CSV; | ||
1873 | 18 | CREATE TABLE t_blackhole(a INT NOT NULL, KEY (a)) ENGINE=BLACKHOLE; | ||
1874 | 19 | CREATE TABLE t_archive(a INT NOT NULL) ENGINE=ARCHIVE; | ||
1875 | 20 | CREATE VIEW v_innodb AS SELECT * FROM t_innodb; | ||
1876 | 21 | CREATE VIEW v_myisam AS SELECT * FROM t_myisam; | ||
1877 | 22 | CREATE VIEW v_memory AS SELECT * FROM t_memory; | ||
1878 | 23 | CREATE VIEW v_csv AS SELECT * FROM t_csv; | ||
1879 | 24 | CREATE VIEW v_blackhole AS SELECT * FROM t_blackhole; | ||
1880 | 25 | CREATE VIEW v_archive AS SELECT * FROM t_archive; | ||
1881 | 26 | #----------------------------------------------------------------------- | ||
1882 | 27 | # Single-threaded tests | ||
1883 | 28 | #----------------------------------------------------------------------- | ||
1884 | 29 | LOCK BINLOG FOR BACKUP; | ||
1885 | 30 | DELETE FROM t_innodb; | ||
1886 | 31 | INSERT INTO t_innodb VALUES(0); | ||
1887 | 32 | UPDATE t_innodb SET a = 1; | ||
1888 | 33 | REPLACE INTO t_innodb VALUES(1); | ||
1889 | 34 | SELECT * from t_innodb; | ||
1890 | 35 | a | ||
1891 | 36 | 1 | ||
1892 | 37 | 1 | ||
1893 | 38 | HANDLER t_innodb OPEN; | ||
1894 | 39 | HANDLER t_innodb READ a FIRST; | ||
1895 | 40 | a | ||
1896 | 41 | 1 | ||
1897 | 42 | HANDLER t_innodb CLOSE; | ||
1898 | 43 | DELETE FROM t_myisam; | ||
1899 | 44 | INSERT INTO t_myisam VALUES(0); | ||
1900 | 45 | UPDATE t_myisam SET a = 1; | ||
1901 | 46 | REPLACE INTO t_myisam VALUES(1); | ||
1902 | 47 | SELECT * from t_myisam; | ||
1903 | 48 | a | ||
1904 | 49 | 1 | ||
1905 | 50 | 1 | ||
1906 | 51 | HANDLER t_myisam OPEN; | ||
1907 | 52 | HANDLER t_myisam READ a FIRST; | ||
1908 | 53 | a | ||
1909 | 54 | 1 | ||
1910 | 55 | HANDLER t_myisam CLOSE; | ||
1911 | 56 | DELETE FROM t_memory; | ||
1912 | 57 | INSERT INTO t_memory VALUES(0); | ||
1913 | 58 | UPDATE t_memory SET a = 1; | ||
1914 | 59 | REPLACE INTO t_memory VALUES(1); | ||
1915 | 60 | SELECT * from t_memory; | ||
1916 | 61 | a | ||
1917 | 62 | 1 | ||
1918 | 63 | 1 | ||
1919 | 64 | DELETE FROM t_archive; | ||
1920 | 65 | INSERT INTO t_archive VALUES(0); | ||
1921 | 66 | SELECT * from t_archive; | ||
1922 | 67 | a | ||
1923 | 68 | 0 | ||
1924 | 69 | DELETE FROM t_csv; | ||
1925 | 70 | INSERT INTO t_csv VALUES(0); | ||
1926 | 71 | UPDATE t_csv SET a = 1; | ||
1927 | 72 | REPLACE INTO t_csv VALUES(1); | ||
1928 | 73 | SELECT * from t_csv; | ||
1929 | 74 | a | ||
1930 | 75 | 1 | ||
1931 | 76 | 1 | ||
1932 | 77 | DELETE FROM t_blackhole; | ||
1933 | 78 | INSERT INTO t_blackhole VALUES(0); | ||
1934 | 79 | UPDATE t_blackhole SET a = 1; | ||
1935 | 80 | REPLACE INTO t_blackhole VALUES(1); | ||
1936 | 81 | SELECT * from t_blackhole; | ||
1937 | 82 | a | ||
1938 | 83 | CREATE TABLE tt_innodb(a INT NOT NULL) ENGINE=InnoDB; | ||
1939 | 84 | CREATE TABLE tt_myisam(a INT NOT NULL) ENGINE=MyISAM; | ||
1940 | 85 | CREATE TABLE tt_memory(a INT NOT NULL) ENGINE=MEMORY; | ||
1941 | 86 | CREATE TABLE tt_csv(a INT NOT NULL) ENGINE=CSV; | ||
1942 | 87 | CREATE TABLE tt_blackhole(a INT NOT NULL) ENGINE=BLACKHOLE; | ||
1943 | 88 | CREATE TABLE tt_archive(a INT NOT NULL) ENGINE=ARCHIVE; | ||
1944 | 89 | DROP TABLE tt_innodb; | ||
1945 | 90 | DROP TABLE tt_myisam; | ||
1946 | 91 | DROP TABLE tt_memory; | ||
1947 | 92 | DROP TABLE tt_csv; | ||
1948 | 93 | DROP TABLE tt_blackhole; | ||
1949 | 94 | DROP TABLE tt_archive; | ||
1950 | 95 | DROP TABLE non_existing; | ||
1951 | 96 | ERROR 42S02: Unknown table 'test.non_existing' | ||
1952 | 97 | TRUNCATE TABLE t_innodb; | ||
1953 | 98 | TRUNCATE TABLE t_myisam; | ||
1954 | 99 | TRUNCATE TABLE t_memory; | ||
1955 | 100 | TRUNCATE TABLE t_csv; | ||
1956 | 101 | TRUNCATE TABLE t_blackhole; | ||
1957 | 102 | RENAME TABLE t_innodb TO tmp, tmp TO t_innodb; | ||
1958 | 103 | RENAME TABLE t_myisam TO tmp, tmp TO t_myisam; | ||
1959 | 104 | RENAME TABLE t_memory TO tmp, tmp TO t_memory; | ||
1960 | 105 | RENAME TABLE t_csv TO tmp, tmp TO t_csv; | ||
1961 | 106 | RENAME TABLE t_blackhole TO tmp, tmp TO t_blackhole; | ||
1962 | 107 | RENAME TABLE t_archive TO tmp, tmp TO t_archive; | ||
1963 | 108 | ALTER TABLE t_innodb ADD COLUMN b CHAR(10) NOT NULL; | ||
1964 | 109 | ALTER TABLE t_innodb DROP COLUMN b; | ||
1965 | 110 | ALTER TABLE t_myisam ADD COLUMN b CHAR(10) NOT NULL; | ||
1966 | 111 | ALTER TABLE t_myisam DROP COLUMN b; | ||
1967 | 112 | ALTER TABLE t_memory ADD COLUMN b CHAR(10) NOT NULL; | ||
1968 | 113 | ALTER TABLE t_memory DROP COLUMN b; | ||
1969 | 114 | ALTER TABLE t_csv ADD COLUMN b CHAR(10) NOT NULL; | ||
1970 | 115 | ALTER TABLE t_csv DROP COLUMN b; | ||
1971 | 116 | ALTER TABLE t_blackhole ADD COLUMN b CHAR(10) NOT NULL; | ||
1972 | 117 | ALTER TABLE t_blackhole DROP COLUMN b; | ||
1973 | 118 | ALTER TABLE t_archive ADD COLUMN b CHAR(10) NOT NULL; | ||
1974 | 119 | ALTER TABLE t_archive DROP COLUMN b; | ||
1975 | 120 | ALTER TABLE t_innodb ADD KEY tmp (a); | ||
1976 | 121 | Warnings: | ||
1977 | 122 | Note 1831 Duplicate index 'tmp' defined on the table 'test.t_innodb'. This is deprecated and will be disallowed in a future release. | ||
1978 | 123 | ALTER TABLE t_innodb DROP KEY tmp; | ||
1979 | 124 | ALTER TABLE t_myisam ADD KEY tmp (a); | ||
1980 | 125 | Warnings: | ||
1981 | 126 | Note 1831 Duplicate index 'tmp' defined on the table 'test.t_myisam'. This is deprecated and will be disallowed in a future release. | ||
1982 | 127 | ALTER TABLE t_myisam DROP KEY tmp; | ||
1983 | 128 | ALTER TABLE t_memory ADD KEY tmp (a); | ||
1984 | 129 | Warnings: | ||
1985 | 130 | Note 1831 Duplicate index 'tmp' defined on the table 'test.t_memory'. This is deprecated and will be disallowed in a future release. | ||
1986 | 131 | ALTER TABLE t_memory DROP KEY tmp; | ||
1987 | 132 | ALTER TABLE t_blackhole ADD KEY tmp (a); | ||
1988 | 133 | Warnings: | ||
1989 | 134 | Note 1831 Duplicate index 'tmp' defined on the table 'test.t_blackhole'. This is deprecated and will be disallowed in a future release. | ||
1990 | 135 | ALTER TABLE t_blackhole DROP KEY tmp; | ||
1991 | 136 | CREATE DATABASE test1; | ||
1992 | 137 | DROP DATABASE test1; | ||
1993 | 138 | CREATE PROCEDURE p1() | ||
1994 | 139 | BEGIN | ||
1995 | 140 | SELECT 1; | ||
1996 | 141 | END| | ||
1997 | 142 | DROP PROCEDURE p1| | ||
1998 | 143 | CREATE FUNCTION f1() RETURNS INT DETERMINISTIC | ||
1999 | 144 | BEGIN | ||
2000 | 145 | RETURN 1; | ||
2001 | 146 | END| | ||
2002 | 147 | DROP FUNCTION f1| | ||
2003 | 148 | CREATE VIEW v1 AS SELECT * FROM t_innodb; | ||
2004 | 149 | DROP VIEW v1; | ||
2005 | 150 | INSERT INTO v_innodb VALUES(1); | ||
2006 | 151 | INSERT INTO v_blackhole VALUES(1); | ||
2007 | 152 | INSERT INTO v_myisam VALUES(1); | ||
2008 | 153 | INSERT INTO v_csv VALUES(1); | ||
2009 | 154 | INSERT INTO v_memory VALUES(1); | ||
2010 | 155 | INSERT INTO v_archive VALUES(1); | ||
2011 | 156 | UNLOCK BINLOG; | ||
2012 | 157 | SELECT @@delay_key_write; | ||
2013 | 158 | @@delay_key_write | ||
2014 | 159 | ON | ||
2015 | 160 | SET GLOBAL delay_key_write=ALL; | ||
2016 | 161 | LOCK TABLES FOR BACKUP; | ||
2017 | 162 | ERROR HY000: The MySQL server is running with the delay_key_write=ALL option so it cannot execute this statement | ||
2018 | 163 | SET GLOBAL delay_key_write=default; | ||
2019 | 164 | SELECT @@delay_key_write; | ||
2020 | 165 | @@delay_key_write | ||
2021 | 166 | ON | ||
2022 | 167 | SET GLOBAL read_only=1; | ||
2023 | 168 | INSERT INTO t_innodb VALUES(0); | ||
2024 | 169 | INSERT INTO t_myisam VALUES(0); | ||
2025 | 170 | LOCK TABLES FOR BACKUP; | ||
2026 | 171 | INSERT INTO t_innodb VALUES(0); | ||
2027 | 172 | INSERT INTO t_myisam VALUES(0); | ||
2028 | 173 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
2029 | 174 | UNLOCK TABLES; | ||
2030 | 175 | INSERT INTO t_innodb VALUES(0); | ||
2031 | 176 | INSERT INTO t_myisam VALUES(0); | ||
2032 | 177 | SET GLOBAL read_only=0; | ||
2033 | 178 | LOCK TABLES FOR BACKUP; | ||
2034 | 179 | CREATE TEMPORARY TABLE tt_innodb(a INT NOT NULL) ENGINE=InnoDB; | ||
2035 | 180 | CREATE TEMPORARY TABLE tt_myisam(a INT NOT NULL) ENGINE=MyISAM; | ||
2036 | 181 | CREATE TEMPORARY TABLE tt_memory(a INT NOT NULL) ENGINE=MEMORY; | ||
2037 | 182 | CREATE TEMPORARY TABLE tt_csv(a INT NOT NULL) ENGINE=CSV; | ||
2038 | 183 | CREATE TEMPORARY TABLE tt_blackhole(a INT NOT NULL) ENGINE=BLACKHOLE; | ||
2039 | 184 | CREATE TEMPORARY TABLE tt_archive(a INT NOT NULL) ENGINE=ARCHIVE; | ||
2040 | 185 | INSERT INTO tt_innodb VALUES(5); | ||
2041 | 186 | INSERT INTO tt_myisam VALUES(5); | ||
2042 | 187 | INSERT INTO tt_memory VALUES(5); | ||
2043 | 188 | INSERT INTO tt_csv VALUES(5); | ||
2044 | 189 | INSERT INTO tt_blackhole VALUES(5); | ||
2045 | 190 | INSERT INTO tt_archive VALUES(5); | ||
2046 | 191 | LOCK BINLOG FOR BACKUP; | ||
2047 | 192 | START TRANSACTION; | ||
2048 | 193 | SELECT * FROM tt_archive; | ||
2049 | 194 | a | ||
2050 | 195 | 5 | ||
2051 | 196 | SELECT * FROM tt_blackhole; | ||
2052 | 197 | a | ||
2053 | 198 | SELECT * FROM tt_memory; | ||
2054 | 199 | a | ||
2055 | 200 | 5 | ||
2056 | 201 | SELECT * FROM tt_innodb; | ||
2057 | 202 | a | ||
2058 | 203 | 5 | ||
2059 | 204 | SELECT * FROM tt_myisam; | ||
2060 | 205 | a | ||
2061 | 206 | 5 | ||
2062 | 207 | INSERT INTO tt_innodb VALUES(6); | ||
2063 | 208 | INSERT INTO tt_myisam VALUES(6); | ||
2064 | 209 | INSERT INTO tt_memory VALUES(6); | ||
2065 | 210 | INSERT INTO tt_csv VALUES(6); | ||
2066 | 211 | INSERT INTO tt_blackhole VALUES(6); | ||
2067 | 212 | INSERT INTO tt_archive VALUES(6); | ||
2068 | 213 | COMMIT; | ||
2069 | 214 | SELECT * FROM tt_archive; | ||
2070 | 215 | a | ||
2071 | 216 | 5 | ||
2072 | 217 | 6 | ||
2073 | 218 | SELECT * FROM tt_blackhole; | ||
2074 | 219 | a | ||
2075 | 220 | SELECT * FROM tt_memory; | ||
2076 | 221 | a | ||
2077 | 222 | 5 | ||
2078 | 223 | 6 | ||
2079 | 224 | SELECT * FROM tt_innodb; | ||
2080 | 225 | a | ||
2081 | 226 | 5 | ||
2082 | 227 | 6 | ||
2083 | 228 | SELECT * FROM tt_myisam; | ||
2084 | 229 | a | ||
2085 | 230 | 5 | ||
2086 | 231 | 6 | ||
2087 | 232 | DROP TEMPORARY TABLE tt_innodb; | ||
2088 | 233 | DROP TEMPORARY TABLE tt_myisam; | ||
2089 | 234 | DROP TEMPORARY TABLE tt_memory; | ||
2090 | 235 | DROP TEMPORARY TABLE tt_csv; | ||
2091 | 236 | DROP TEMPORARY TABLE tt_blackhole; | ||
2092 | 237 | DROP TEMPORARY TABLE tt_archive; | ||
2093 | 238 | UNLOCK BINLOG; | ||
2094 | 239 | UNLOCK TABLES; | ||
2095 | 240 | SELECT @@log_bin; | ||
2096 | 241 | @@log_bin | ||
2097 | 242 | 1 | ||
2098 | 243 | LOCK BINLOG FOR BACKUP; | ||
2099 | 244 | INSERT INTO t_innodb VALUES(1); | ||
2100 | 245 | INSERT INTO t_myisam VALUES(1); | ||
2101 | 246 | UNLOCK BINLOG; | ||
2102 | 247 | SET @old_general_log = @@general_log; | ||
2103 | 248 | SET @old_slow_query_log = @@slow_query_log; | ||
2104 | 249 | SET @old_log_output = @@log_output; | ||
2105 | 250 | SET @old_long_query_time = @@SESSION.long_query_time; | ||
2106 | 251 | SET SESSION long_query_time = 0; | ||
2107 | 252 | SET GLOBAL log_output = 'TABLE'; | ||
2108 | 253 | SET GLOBAL general_log = ON; | ||
2109 | 254 | SET GLOBAL slow_query_log = ON; | ||
2110 | 255 | LOCK TABLES FOR BACKUP; | ||
2111 | 256 | SELECT 1; | ||
2112 | 257 | 1 | ||
2113 | 258 | 1 | ||
2114 | 259 | LOCK BINLOG FOR BACKUP; | ||
2115 | 260 | SELECT 1; | ||
2116 | 261 | 1 | ||
2117 | 262 | 1 | ||
2118 | 263 | UNLOCK BINLOG; | ||
2119 | 264 | UNLOCK TABLES; | ||
2120 | 265 | SET SESSION long_query_time = @old_long_query_time; | ||
2121 | 266 | SET GLOBAL log_output = @old_log_output; | ||
2122 | 267 | SET GLOBAL slow_query_log = @old_slow_query_log; | ||
2123 | 268 | SET GLOBAL general_log = @old_general_log; | ||
2124 | 269 | #----------------------------------------------------------------------- | ||
2125 | 270 | # Multi-threaded tests | ||
2126 | 271 | #----------------------------------------------------------------------- | ||
2127 | 272 | # connection default | ||
2128 | 273 | CREATE USER user@localhost; | ||
2129 | 274 | GRANT ALL PRIVILEGES ON test.* TO user@localhost; | ||
2130 | 275 | LOCK TABLES FOR BACKUP; | ||
2131 | 276 | # connection con1 | ||
2132 | 277 | SET SESSION lock_wait_timeout = 1; | ||
2133 | 278 | SET GLOBAL delay_key_write=ALL; | ||
2134 | 279 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2135 | 280 | SET SESSION lock_wait_timeout = DEFAULT; | ||
2136 | 281 | # connection default | ||
2137 | 282 | UNLOCK TABLES; | ||
2138 | 283 | # connection con2 | ||
2139 | 284 | START TRANSACTION; | ||
2140 | 285 | INSERT INTO t_innodb VALUES(0); | ||
2141 | 286 | # connection default | ||
2142 | 287 | SET GLOBAL read_only=1; | ||
2143 | 288 | # connection con2 | ||
2144 | 289 | COMMIT; | ||
2145 | 290 | ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement | ||
2146 | 291 | INSERT INTO t_innodb VALUES(0); | ||
2147 | 292 | ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement | ||
2148 | 293 | INSERT INTO t_myisam VALUES(0); | ||
2149 | 294 | ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement | ||
2150 | 295 | # connection con1 | ||
2151 | 296 | LOCK TABLES FOR BACKUP; | ||
2152 | 297 | # connection con2 | ||
2153 | 298 | INSERT INTO t_innodb VALUES(0); | ||
2154 | 299 | ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement | ||
2155 | 300 | INSERT INTO t_myisam VALUES(0); | ||
2156 | 301 | ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement | ||
2157 | 302 | # connection default | ||
2158 | 303 | SET GLOBAL read_only=0; | ||
2159 | 304 | # connection con2 | ||
2160 | 305 | SET SESSION lock_wait_timeout = 1; | ||
2161 | 306 | INSERT INTO t_innodb VALUES(0); | ||
2162 | 307 | INSERT INTO t_myisam VALUES(0); | ||
2163 | 308 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2164 | 309 | SET SESSION lock_wait_timeout = 0; | ||
2165 | 310 | Warnings: | ||
2166 | 311 | Warning 1292 Truncated incorrect lock_wait_timeout value: '0' | ||
2167 | 312 | # connection default | ||
2168 | 313 | SET GLOBAL read_only=1; | ||
2169 | 314 | # connection con2 | ||
2170 | 315 | INSERT INTO t_innodb VALUES(0); | ||
2171 | 316 | ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement | ||
2172 | 317 | INSERT INTO t_myisam VALUES(0); | ||
2173 | 318 | ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement | ||
2174 | 319 | # connection con1 | ||
2175 | 320 | UNLOCK TABLES; | ||
2176 | 321 | # connection con2 | ||
2177 | 322 | INSERT INTO t_innodb VALUES(0); | ||
2178 | 323 | ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement | ||
2179 | 324 | INSERT INTO t_myisam VALUES(0); | ||
2180 | 325 | ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement | ||
2181 | 326 | # connection default | ||
2182 | 327 | SET GLOBAL read_only=0; | ||
2183 | 328 | # connection default | ||
2184 | 329 | LOCK TABLES FOR BACKUP; | ||
2185 | 330 | # connection con1 | ||
2186 | 331 | CREATE TEMPORARY TABLE tt_innodb(a INT NOT NULL) ENGINE=InnoDB; | ||
2187 | 332 | CREATE TEMPORARY TABLE tt_myisam(a INT NOT NULL) ENGINE=MyISAM; | ||
2188 | 333 | CREATE TEMPORARY TABLE tt_memory(a INT NOT NULL) ENGINE=MEMORY; | ||
2189 | 334 | CREATE TEMPORARY TABLE tt_csv(a INT NOT NULL) ENGINE=CSV; | ||
2190 | 335 | CREATE TEMPORARY TABLE tt_blackhole(a INT NOT NULL) ENGINE=BLACKHOLE; | ||
2191 | 336 | CREATE TEMPORARY TABLE tt_archive(a INT NOT NULL) ENGINE=ARCHIVE; | ||
2192 | 337 | INSERT INTO tt_innodb VALUES(5); | ||
2193 | 338 | INSERT INTO tt_myisam VALUES(5); | ||
2194 | 339 | INSERT INTO tt_memory VALUES(5); | ||
2195 | 340 | INSERT INTO tt_csv VALUES(5); | ||
2196 | 341 | INSERT INTO tt_blackhole VALUES(5); | ||
2197 | 342 | INSERT INTO tt_archive VALUES(5); | ||
2198 | 343 | # connection default | ||
2199 | 344 | LOCK BINLOG FOR BACKUP; | ||
2200 | 345 | # connection con1 | ||
2201 | 346 | SET SESSION lock_wait_timeout = 1; | ||
2202 | 347 | START TRANSACTION; | ||
2203 | 348 | INSERT INTO tt_myisam VALUES(6); | ||
2204 | 349 | INSERT INTO tt_innodb VALUES(6); | ||
2205 | 350 | SELECT * FROM tt_archive; | ||
2206 | 351 | a | ||
2207 | 352 | 5 | ||
2208 | 353 | SELECT * FROM tt_blackhole; | ||
2209 | 354 | a | ||
2210 | 355 | SELECT * FROM tt_memory; | ||
2211 | 356 | a | ||
2212 | 357 | 5 | ||
2213 | 358 | SELECT * FROM tt_innodb; | ||
2214 | 359 | a | ||
2215 | 360 | 5 | ||
2216 | 361 | 6 | ||
2217 | 362 | SELECT * FROM tt_myisam; | ||
2218 | 363 | a | ||
2219 | 364 | 5 | ||
2220 | 365 | 6 | ||
2221 | 366 | SELECT * FROM tt_csv; | ||
2222 | 367 | a | ||
2223 | 368 | 5 | ||
2224 | 369 | # connection default | ||
2225 | 370 | must_be_1 | ||
2226 | 371 | 1 | ||
2227 | 372 | UNLOCK BINLOG; | ||
2228 | 373 | UNLOCK TABLES; | ||
2229 | 374 | # connection con1 | ||
2230 | 375 | COMMIT; | ||
2231 | 376 | DROP TEMPORARY TABLE tt_innodb; | ||
2232 | 377 | DROP TEMPORARY TABLE tt_myisam; | ||
2233 | 378 | DROP TEMPORARY TABLE tt_memory; | ||
2234 | 379 | DROP TEMPORARY TABLE tt_csv; | ||
2235 | 380 | DROP TEMPORARY TABLE tt_blackhole; | ||
2236 | 381 | DROP TEMPORARY TABLE tt_archive; | ||
2237 | 382 | # connection default | ||
2238 | 383 | LOCK BINLOG FOR BACKUP; | ||
2239 | 384 | # connection con1 | ||
2240 | 385 | SET SESSION lock_wait_timeout = 1; | ||
2241 | 386 | INSERT INTO t_innodb VALUES(1); | ||
2242 | 387 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2243 | 388 | INSERT INTO t_myisam VALUES(1); | ||
2244 | 389 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2245 | 390 | SET SESSION lock_wait_timeout = DEFAULT; | ||
2246 | 391 | # connection default | ||
2247 | 392 | must_be_1 | ||
2248 | 393 | 1 | ||
2249 | 394 | UNLOCK BINLOG; | ||
2250 | 395 | # connection default | ||
2251 | 396 | LOCK BINLOG FOR BACKUP; | ||
2252 | 397 | # connection con1 | ||
2253 | 398 | SET SESSION lock_wait_timeout = 1; | ||
2254 | 399 | DELETE FROM t_innodb; | ||
2255 | 400 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2256 | 401 | INSERT INTO t_innodb VALUES(0); | ||
2257 | 402 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2258 | 403 | UPDATE t_innodb SET a = 1; | ||
2259 | 404 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2260 | 405 | REPLACE INTO t_innodb VALUES(1); | ||
2261 | 406 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2262 | 407 | SELECT * from t_innodb; | ||
2263 | 408 | a | ||
2264 | 409 | 0 | ||
2265 | 410 | 0 | ||
2266 | 411 | 0 | ||
2267 | 412 | 0 | ||
2268 | 413 | 1 | ||
2269 | 414 | 1 | ||
2270 | 415 | HANDLER t_innodb OPEN; | ||
2271 | 416 | HANDLER t_innodb READ a FIRST; | ||
2272 | 417 | a | ||
2273 | 418 | 0 | ||
2274 | 419 | HANDLER t_innodb CLOSE; | ||
2275 | 420 | START TRANSACTION; | ||
2276 | 421 | SELECT * from t_innodb; | ||
2277 | 422 | a | ||
2278 | 423 | 0 | ||
2279 | 424 | 0 | ||
2280 | 425 | 0 | ||
2281 | 426 | 0 | ||
2282 | 427 | 1 | ||
2283 | 428 | 1 | ||
2284 | 429 | DELETE FROM t_innodb; | ||
2285 | 430 | INSERT INTO t_innodb VALUES(0); | ||
2286 | 431 | UPDATE t_innodb SET a = 1; | ||
2287 | 432 | REPLACE INTO t_innodb VALUES(1); | ||
2288 | 433 | COMMIT; | ||
2289 | 434 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2290 | 435 | SELECT * FROM t_innodb; | ||
2291 | 436 | a | ||
2292 | 437 | 0 | ||
2293 | 438 | 0 | ||
2294 | 439 | 0 | ||
2295 | 440 | 0 | ||
2296 | 441 | 1 | ||
2297 | 442 | 1 | ||
2298 | 443 | COMMIT; | ||
2299 | 444 | START TRANSACTION; | ||
2300 | 445 | INSERT INTO t_myisam VALUES(1); | ||
2301 | 446 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2302 | 447 | COMMIT; | ||
2303 | 448 | INSERT INTO t_myisam VALUES(0); | ||
2304 | 449 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2305 | 450 | UPDATE t_myisam SET a = 1; | ||
2306 | 451 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2307 | 452 | SELECT * FROM t_myisam; | ||
2308 | 453 | a | ||
2309 | 454 | 1 | ||
2310 | 455 | 1 | ||
2311 | 456 | 1 | ||
2312 | 457 | 1 | ||
2313 | 458 | 1 | ||
2314 | 459 | 1 | ||
2315 | 460 | 1 | ||
2316 | 461 | HANDLER t_myisam OPEN; | ||
2317 | 462 | HANDLER t_myisam READ a FIRST; | ||
2318 | 463 | a | ||
2319 | 464 | 1 | ||
2320 | 465 | HANDLER t_myisam CLOSE; | ||
2321 | 466 | DELETE FROM t_blackhole; | ||
2322 | 467 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2323 | 468 | INSERT INTO t_blackhole VALUES(0); | ||
2324 | 469 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2325 | 470 | UPDATE t_blackhole SET a = 1; | ||
2326 | 471 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2327 | 472 | REPLACE INTO t_blackhole VALUES(1); | ||
2328 | 473 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2329 | 474 | SELECT * FROM t_blackhole; | ||
2330 | 475 | a | ||
2331 | 476 | CREATE TABLE tt_innodb(a INT NOT NULL) ENGINE=InnoDB; | ||
2332 | 477 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2333 | 478 | DROP TABLE tt_innodb; | ||
2334 | 479 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2335 | 480 | DROP TABLE non_existing; | ||
2336 | 481 | ERROR 42S02: Unknown table 'test.non_existing' | ||
2337 | 482 | CREATE TABLE t_innodb(a INT NOT NULL) ENGINE=InnoDB; | ||
2338 | 483 | ERROR 42S01: Table 't_innodb' already exists | ||
2339 | 484 | TRUNCATE TABLE t_innodb; | ||
2340 | 485 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2341 | 486 | RENAME TABLE t_innodb TO tmp, tmp to t_innodb; | ||
2342 | 487 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2343 | 488 | ALTER TABLE t_innodb ADD COLUMN b CHAR(10); | ||
2344 | 489 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2345 | 490 | ALTER TABLE t_innodb ADD KEY (a); | ||
2346 | 491 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2347 | 492 | CREATE DATABASE test1; | ||
2348 | 493 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2349 | 494 | DROP DATABASE test1; | ||
2350 | 495 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2351 | 496 | CREATE PROCEDURE p1() SELECT 1; | ||
2352 | 497 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2353 | 498 | DROP PROCEDURE p1; | ||
2354 | 499 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2355 | 500 | CREATE VIEW v1 AS SELECT * FROM t_innodb; | ||
2356 | 501 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2357 | 502 | DROP VIEW v1; | ||
2358 | 503 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2359 | 504 | INSERT INTO v_innodb VALUES(1); | ||
2360 | 505 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2361 | 506 | # connection default | ||
2362 | 507 | must_be_1 | ||
2363 | 508 | 1 | ||
2364 | 509 | UNLOCK BINLOG; | ||
2365 | 510 | # connection con1 | ||
2366 | 511 | SHOW CREATE TABLE t_innodb; | ||
2367 | 512 | Table Create Table | ||
2368 | 513 | t_innodb CREATE TABLE `t_innodb` ( | ||
2369 | 514 | `a` int(11) NOT NULL, | ||
2370 | 515 | `b` char(10) DEFAULT NULL, | ||
2371 | 516 | KEY `a` (`a`), | ||
2372 | 517 | KEY `a_2` (`a`) | ||
2373 | 518 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1 | ||
2374 | 519 | DROP TABLE t_innodb; | ||
2375 | 520 | CREATE TABLE t_innodb(a INT NOT NULL) ENGINE=InnoDB; | ||
2376 | 521 | # connection default | ||
2377 | 522 | LOCK BINLOG FOR BACKUP; | ||
2378 | 523 | # connection con1 | ||
2379 | 524 | INSERT DELAYED INTO t_myisam VALUES(0); | ||
2380 | 525 | Warnings: | ||
2381 | 526 | Warning 1287 'INSERT DELAYED' is deprecated and will be removed in a future release. Please use INSERT instead | ||
2382 | 527 | # connection default | ||
2383 | 528 | must_be_1 | ||
2384 | 529 | 1 | ||
2385 | 530 | UNLOCK BINLOG; | ||
2386 | 531 | SELECT * FROm t_myisam; | ||
2387 | 532 | a | ||
2388 | 533 | 0 | ||
2389 | 534 | 1 | ||
2390 | 535 | 1 | ||
2391 | 536 | 1 | ||
2392 | 537 | 1 | ||
2393 | 538 | 1 | ||
2394 | 539 | 1 | ||
2395 | 540 | 1 | ||
2396 | 541 | SET @old_general_log = @@general_log; | ||
2397 | 542 | SET @old_slow_query_log = @@slow_query_log; | ||
2398 | 543 | SET @old_log_output = @@log_output; | ||
2399 | 544 | SET GLOBAL log_output = 'TABLE'; | ||
2400 | 545 | SET GLOBAL general_log = ON; | ||
2401 | 546 | SET GLOBAL slow_query_log = ON; | ||
2402 | 547 | LOCK BINLOG FOR BACKUP; | ||
2403 | 548 | # connection con1 | ||
2404 | 549 | SET @old_long_query_time = @@SESSION.long_query_time; | ||
2405 | 550 | SET SESSION long_query_time = 0; | ||
2406 | 551 | SELECT 1; | ||
2407 | 552 | 1 | ||
2408 | 553 | 1 | ||
2409 | 554 | # connection default | ||
2410 | 555 | SELECT 1; | ||
2411 | 556 | 1 | ||
2412 | 557 | 1 | ||
2413 | 558 | # connection con1 | ||
2414 | 559 | SET SESSION long_query_time = @old_long_query_time; | ||
2415 | 560 | # connection default | ||
2416 | 561 | must_be_1 | ||
2417 | 562 | 1 | ||
2418 | 563 | UNLOCK BINLOG; | ||
2419 | 564 | SET GLOBAL log_output = @old_log_output; | ||
2420 | 565 | SET GLOBAL slow_query_log = @old_slow_query_log; | ||
2421 | 566 | SET GLOBAL general_log = @old_general_log; | ||
2422 | 567 | #----------------------------------------------------------------------- | ||
2423 | 568 | # Cleanup | ||
2424 | 569 | #----------------------------------------------------------------------- | ||
2425 | 570 | DROP USER user@localhost; | ||
2426 | 571 | DROP VIEW v_innodb, v_myisam, v_memory, v_csv, v_blackhole, v_archive; | ||
2427 | 572 | DROP TABLE t_innodb, t_myisam, t_memory, t_csv, t_blackhole, t_archive; | ||
2428 | 573 | SET GLOBAL binlog_format = @old_binlog_format; | ||
2429 | 0 | 574 | ||
2430 | === added file 'mysql-test/r/backup_locks_binlog_row.result' | |||
2431 | --- mysql-test/r/backup_locks_binlog_row.result 1970-01-01 00:00:00 +0000 | |||
2432 | +++ mysql-test/r/backup_locks_binlog_row.result 2014-02-20 11:26:00 +0000 | |||
2433 | @@ -0,0 +1,579 @@ | |||
2434 | 1 | SET @old_binlog_format=@@binlog_format; | ||
2435 | 2 | SET GLOBAL binlog_format='ROW'; | ||
2436 | 3 | SET SESSION binlog_format='ROW'; | ||
2437 | 4 | SELECT @@binlog_format; | ||
2438 | 5 | @@binlog_format | ||
2439 | 6 | ROW | ||
2440 | 7 | RESET MASTER; | ||
2441 | 8 | SHOW VARIABLES LIKE 'have_backup_locks'; | ||
2442 | 9 | Variable_name Value | ||
2443 | 10 | have_backup_locks YES | ||
2444 | 11 | #----------------------------------------------------------------------- | ||
2445 | 12 | # Setup | ||
2446 | 13 | #----------------------------------------------------------------------- | ||
2447 | 14 | CREATE TABLE t_innodb(a INT NOT NULL, KEY (a)) ENGINE=InnoDB; | ||
2448 | 15 | CREATE TABLE t_myisam(a INT NOT NULL, KEY (a)) ENGINE=MyISAM; | ||
2449 | 16 | CREATE TABLE t_memory(a INT NOT NULL, KEY (a)) ENGINE=MEMORY; | ||
2450 | 17 | CREATE TABLE t_csv(a INT NOT NULL) ENGINE=CSV; | ||
2451 | 18 | CREATE TABLE t_blackhole(a INT NOT NULL, KEY (a)) ENGINE=BLACKHOLE; | ||
2452 | 19 | CREATE TABLE t_archive(a INT NOT NULL) ENGINE=ARCHIVE; | ||
2453 | 20 | CREATE VIEW v_innodb AS SELECT * FROM t_innodb; | ||
2454 | 21 | CREATE VIEW v_myisam AS SELECT * FROM t_myisam; | ||
2455 | 22 | CREATE VIEW v_memory AS SELECT * FROM t_memory; | ||
2456 | 23 | CREATE VIEW v_csv AS SELECT * FROM t_csv; | ||
2457 | 24 | CREATE VIEW v_blackhole AS SELECT * FROM t_blackhole; | ||
2458 | 25 | CREATE VIEW v_archive AS SELECT * FROM t_archive; | ||
2459 | 26 | #----------------------------------------------------------------------- | ||
2460 | 27 | # Single-threaded tests | ||
2461 | 28 | #----------------------------------------------------------------------- | ||
2462 | 29 | LOCK BINLOG FOR BACKUP; | ||
2463 | 30 | DELETE FROM t_innodb; | ||
2464 | 31 | INSERT INTO t_innodb VALUES(0); | ||
2465 | 32 | UPDATE t_innodb SET a = 1; | ||
2466 | 33 | REPLACE INTO t_innodb VALUES(1); | ||
2467 | 34 | SELECT * from t_innodb; | ||
2468 | 35 | a | ||
2469 | 36 | 1 | ||
2470 | 37 | 1 | ||
2471 | 38 | HANDLER t_innodb OPEN; | ||
2472 | 39 | HANDLER t_innodb READ a FIRST; | ||
2473 | 40 | a | ||
2474 | 41 | 1 | ||
2475 | 42 | HANDLER t_innodb CLOSE; | ||
2476 | 43 | DELETE FROM t_myisam; | ||
2477 | 44 | INSERT INTO t_myisam VALUES(0); | ||
2478 | 45 | UPDATE t_myisam SET a = 1; | ||
2479 | 46 | REPLACE INTO t_myisam VALUES(1); | ||
2480 | 47 | SELECT * from t_myisam; | ||
2481 | 48 | a | ||
2482 | 49 | 1 | ||
2483 | 50 | 1 | ||
2484 | 51 | HANDLER t_myisam OPEN; | ||
2485 | 52 | HANDLER t_myisam READ a FIRST; | ||
2486 | 53 | a | ||
2487 | 54 | 1 | ||
2488 | 55 | HANDLER t_myisam CLOSE; | ||
2489 | 56 | DELETE FROM t_memory; | ||
2490 | 57 | INSERT INTO t_memory VALUES(0); | ||
2491 | 58 | UPDATE t_memory SET a = 1; | ||
2492 | 59 | REPLACE INTO t_memory VALUES(1); | ||
2493 | 60 | SELECT * from t_memory; | ||
2494 | 61 | a | ||
2495 | 62 | 1 | ||
2496 | 63 | 1 | ||
2497 | 64 | DELETE FROM t_archive; | ||
2498 | 65 | INSERT INTO t_archive VALUES(0); | ||
2499 | 66 | SELECT * from t_archive; | ||
2500 | 67 | a | ||
2501 | 68 | 0 | ||
2502 | 69 | DELETE FROM t_csv; | ||
2503 | 70 | INSERT INTO t_csv VALUES(0); | ||
2504 | 71 | UPDATE t_csv SET a = 1; | ||
2505 | 72 | REPLACE INTO t_csv VALUES(1); | ||
2506 | 73 | SELECT * from t_csv; | ||
2507 | 74 | a | ||
2508 | 75 | 1 | ||
2509 | 76 | 1 | ||
2510 | 77 | DELETE FROM t_blackhole; | ||
2511 | 78 | Warnings: | ||
2512 | 79 | Warning 1870 Row events are not logged for DELETE statements that modify BLACKHOLE tables in row format. Table(s): 't_blackhole.' | ||
2513 | 80 | INSERT INTO t_blackhole VALUES(0); | ||
2514 | 81 | UPDATE t_blackhole SET a = 1; | ||
2515 | 82 | Warnings: | ||
2516 | 83 | Warning 1870 Row events are not logged for UPDATE statements that modify BLACKHOLE tables in row format. Table(s): 't_blackhole.' | ||
2517 | 84 | REPLACE INTO t_blackhole VALUES(1); | ||
2518 | 85 | SELECT * from t_blackhole; | ||
2519 | 86 | a | ||
2520 | 87 | CREATE TABLE tt_innodb(a INT NOT NULL) ENGINE=InnoDB; | ||
2521 | 88 | CREATE TABLE tt_myisam(a INT NOT NULL) ENGINE=MyISAM; | ||
2522 | 89 | CREATE TABLE tt_memory(a INT NOT NULL) ENGINE=MEMORY; | ||
2523 | 90 | CREATE TABLE tt_csv(a INT NOT NULL) ENGINE=CSV; | ||
2524 | 91 | CREATE TABLE tt_blackhole(a INT NOT NULL) ENGINE=BLACKHOLE; | ||
2525 | 92 | CREATE TABLE tt_archive(a INT NOT NULL) ENGINE=ARCHIVE; | ||
2526 | 93 | DROP TABLE tt_innodb; | ||
2527 | 94 | DROP TABLE tt_myisam; | ||
2528 | 95 | DROP TABLE tt_memory; | ||
2529 | 96 | DROP TABLE tt_csv; | ||
2530 | 97 | DROP TABLE tt_blackhole; | ||
2531 | 98 | DROP TABLE tt_archive; | ||
2532 | 99 | DROP TABLE non_existing; | ||
2533 | 100 | ERROR 42S02: Unknown table 'test.non_existing' | ||
2534 | 101 | TRUNCATE TABLE t_innodb; | ||
2535 | 102 | TRUNCATE TABLE t_myisam; | ||
2536 | 103 | TRUNCATE TABLE t_memory; | ||
2537 | 104 | TRUNCATE TABLE t_csv; | ||
2538 | 105 | TRUNCATE TABLE t_blackhole; | ||
2539 | 106 | RENAME TABLE t_innodb TO tmp, tmp TO t_innodb; | ||
2540 | 107 | RENAME TABLE t_myisam TO tmp, tmp TO t_myisam; | ||
2541 | 108 | RENAME TABLE t_memory TO tmp, tmp TO t_memory; | ||
2542 | 109 | RENAME TABLE t_csv TO tmp, tmp TO t_csv; | ||
2543 | 110 | RENAME TABLE t_blackhole TO tmp, tmp TO t_blackhole; | ||
2544 | 111 | RENAME TABLE t_archive TO tmp, tmp TO t_archive; | ||
2545 | 112 | ALTER TABLE t_innodb ADD COLUMN b CHAR(10) NOT NULL; | ||
2546 | 113 | ALTER TABLE t_innodb DROP COLUMN b; | ||
2547 | 114 | ALTER TABLE t_myisam ADD COLUMN b CHAR(10) NOT NULL; | ||
2548 | 115 | ALTER TABLE t_myisam DROP COLUMN b; | ||
2549 | 116 | ALTER TABLE t_memory ADD COLUMN b CHAR(10) NOT NULL; | ||
2550 | 117 | ALTER TABLE t_memory DROP COLUMN b; | ||
2551 | 118 | ALTER TABLE t_csv ADD COLUMN b CHAR(10) NOT NULL; | ||
2552 | 119 | ALTER TABLE t_csv DROP COLUMN b; | ||
2553 | 120 | ALTER TABLE t_blackhole ADD COLUMN b CHAR(10) NOT NULL; | ||
2554 | 121 | ALTER TABLE t_blackhole DROP COLUMN b; | ||
2555 | 122 | ALTER TABLE t_archive ADD COLUMN b CHAR(10) NOT NULL; | ||
2556 | 123 | ALTER TABLE t_archive DROP COLUMN b; | ||
2557 | 124 | ALTER TABLE t_innodb ADD KEY tmp (a); | ||
2558 | 125 | Warnings: | ||
2559 | 126 | Note 1831 Duplicate index 'tmp' defined on the table 'test.t_innodb'. This is deprecated and will be disallowed in a future release. | ||
2560 | 127 | ALTER TABLE t_innodb DROP KEY tmp; | ||
2561 | 128 | ALTER TABLE t_myisam ADD KEY tmp (a); | ||
2562 | 129 | Warnings: | ||
2563 | 130 | Note 1831 Duplicate index 'tmp' defined on the table 'test.t_myisam'. This is deprecated and will be disallowed in a future release. | ||
2564 | 131 | ALTER TABLE t_myisam DROP KEY tmp; | ||
2565 | 132 | ALTER TABLE t_memory ADD KEY tmp (a); | ||
2566 | 133 | Warnings: | ||
2567 | 134 | Note 1831 Duplicate index 'tmp' defined on the table 'test.t_memory'. This is deprecated and will be disallowed in a future release. | ||
2568 | 135 | ALTER TABLE t_memory DROP KEY tmp; | ||
2569 | 136 | ALTER TABLE t_blackhole ADD KEY tmp (a); | ||
2570 | 137 | Warnings: | ||
2571 | 138 | Note 1831 Duplicate index 'tmp' defined on the table 'test.t_blackhole'. This is deprecated and will be disallowed in a future release. | ||
2572 | 139 | ALTER TABLE t_blackhole DROP KEY tmp; | ||
2573 | 140 | CREATE DATABASE test1; | ||
2574 | 141 | DROP DATABASE test1; | ||
2575 | 142 | CREATE PROCEDURE p1() | ||
2576 | 143 | BEGIN | ||
2577 | 144 | SELECT 1; | ||
2578 | 145 | END| | ||
2579 | 146 | DROP PROCEDURE p1| | ||
2580 | 147 | CREATE FUNCTION f1() RETURNS INT DETERMINISTIC | ||
2581 | 148 | BEGIN | ||
2582 | 149 | RETURN 1; | ||
2583 | 150 | END| | ||
2584 | 151 | DROP FUNCTION f1| | ||
2585 | 152 | CREATE VIEW v1 AS SELECT * FROM t_innodb; | ||
2586 | 153 | DROP VIEW v1; | ||
2587 | 154 | INSERT INTO v_innodb VALUES(1); | ||
2588 | 155 | INSERT INTO v_blackhole VALUES(1); | ||
2589 | 156 | INSERT INTO v_myisam VALUES(1); | ||
2590 | 157 | INSERT INTO v_csv VALUES(1); | ||
2591 | 158 | INSERT INTO v_memory VALUES(1); | ||
2592 | 159 | INSERT INTO v_archive VALUES(1); | ||
2593 | 160 | UNLOCK BINLOG; | ||
2594 | 161 | SELECT @@delay_key_write; | ||
2595 | 162 | @@delay_key_write | ||
2596 | 163 | ON | ||
2597 | 164 | SET GLOBAL delay_key_write=ALL; | ||
2598 | 165 | LOCK TABLES FOR BACKUP; | ||
2599 | 166 | ERROR HY000: The MySQL server is running with the delay_key_write=ALL option so it cannot execute this statement | ||
2600 | 167 | SET GLOBAL delay_key_write=default; | ||
2601 | 168 | SELECT @@delay_key_write; | ||
2602 | 169 | @@delay_key_write | ||
2603 | 170 | ON | ||
2604 | 171 | SET GLOBAL read_only=1; | ||
2605 | 172 | INSERT INTO t_innodb VALUES(0); | ||
2606 | 173 | INSERT INTO t_myisam VALUES(0); | ||
2607 | 174 | LOCK TABLES FOR BACKUP; | ||
2608 | 175 | INSERT INTO t_innodb VALUES(0); | ||
2609 | 176 | INSERT INTO t_myisam VALUES(0); | ||
2610 | 177 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
2611 | 178 | UNLOCK TABLES; | ||
2612 | 179 | INSERT INTO t_innodb VALUES(0); | ||
2613 | 180 | INSERT INTO t_myisam VALUES(0); | ||
2614 | 181 | SET GLOBAL read_only=0; | ||
2615 | 182 | LOCK TABLES FOR BACKUP; | ||
2616 | 183 | CREATE TEMPORARY TABLE tt_innodb(a INT NOT NULL) ENGINE=InnoDB; | ||
2617 | 184 | CREATE TEMPORARY TABLE tt_myisam(a INT NOT NULL) ENGINE=MyISAM; | ||
2618 | 185 | CREATE TEMPORARY TABLE tt_memory(a INT NOT NULL) ENGINE=MEMORY; | ||
2619 | 186 | CREATE TEMPORARY TABLE tt_csv(a INT NOT NULL) ENGINE=CSV; | ||
2620 | 187 | CREATE TEMPORARY TABLE tt_blackhole(a INT NOT NULL) ENGINE=BLACKHOLE; | ||
2621 | 188 | CREATE TEMPORARY TABLE tt_archive(a INT NOT NULL) ENGINE=ARCHIVE; | ||
2622 | 189 | INSERT INTO tt_innodb VALUES(5); | ||
2623 | 190 | INSERT INTO tt_myisam VALUES(5); | ||
2624 | 191 | INSERT INTO tt_memory VALUES(5); | ||
2625 | 192 | INSERT INTO tt_csv VALUES(5); | ||
2626 | 193 | INSERT INTO tt_blackhole VALUES(5); | ||
2627 | 194 | INSERT INTO tt_archive VALUES(5); | ||
2628 | 195 | LOCK BINLOG FOR BACKUP; | ||
2629 | 196 | START TRANSACTION; | ||
2630 | 197 | SELECT * FROM tt_archive; | ||
2631 | 198 | a | ||
2632 | 199 | 5 | ||
2633 | 200 | SELECT * FROM tt_blackhole; | ||
2634 | 201 | a | ||
2635 | 202 | SELECT * FROM tt_memory; | ||
2636 | 203 | a | ||
2637 | 204 | 5 | ||
2638 | 205 | SELECT * FROM tt_innodb; | ||
2639 | 206 | a | ||
2640 | 207 | 5 | ||
2641 | 208 | SELECT * FROM tt_myisam; | ||
2642 | 209 | a | ||
2643 | 210 | 5 | ||
2644 | 211 | INSERT INTO tt_innodb VALUES(6); | ||
2645 | 212 | INSERT INTO tt_myisam VALUES(6); | ||
2646 | 213 | INSERT INTO tt_memory VALUES(6); | ||
2647 | 214 | INSERT INTO tt_csv VALUES(6); | ||
2648 | 215 | INSERT INTO tt_blackhole VALUES(6); | ||
2649 | 216 | INSERT INTO tt_archive VALUES(6); | ||
2650 | 217 | COMMIT; | ||
2651 | 218 | SELECT * FROM tt_archive; | ||
2652 | 219 | a | ||
2653 | 220 | 5 | ||
2654 | 221 | 6 | ||
2655 | 222 | SELECT * FROM tt_blackhole; | ||
2656 | 223 | a | ||
2657 | 224 | SELECT * FROM tt_memory; | ||
2658 | 225 | a | ||
2659 | 226 | 5 | ||
2660 | 227 | 6 | ||
2661 | 228 | SELECT * FROM tt_innodb; | ||
2662 | 229 | a | ||
2663 | 230 | 5 | ||
2664 | 231 | 6 | ||
2665 | 232 | SELECT * FROM tt_myisam; | ||
2666 | 233 | a | ||
2667 | 234 | 5 | ||
2668 | 235 | 6 | ||
2669 | 236 | DROP TEMPORARY TABLE tt_innodb; | ||
2670 | 237 | DROP TEMPORARY TABLE tt_myisam; | ||
2671 | 238 | DROP TEMPORARY TABLE tt_memory; | ||
2672 | 239 | DROP TEMPORARY TABLE tt_csv; | ||
2673 | 240 | DROP TEMPORARY TABLE tt_blackhole; | ||
2674 | 241 | DROP TEMPORARY TABLE tt_archive; | ||
2675 | 242 | UNLOCK BINLOG; | ||
2676 | 243 | UNLOCK TABLES; | ||
2677 | 244 | SELECT @@log_bin; | ||
2678 | 245 | @@log_bin | ||
2679 | 246 | 1 | ||
2680 | 247 | LOCK BINLOG FOR BACKUP; | ||
2681 | 248 | INSERT INTO t_innodb VALUES(1); | ||
2682 | 249 | INSERT INTO t_myisam VALUES(1); | ||
2683 | 250 | UNLOCK BINLOG; | ||
2684 | 251 | SET @old_general_log = @@general_log; | ||
2685 | 252 | SET @old_slow_query_log = @@slow_query_log; | ||
2686 | 253 | SET @old_log_output = @@log_output; | ||
2687 | 254 | SET @old_long_query_time = @@SESSION.long_query_time; | ||
2688 | 255 | SET SESSION long_query_time = 0; | ||
2689 | 256 | SET GLOBAL log_output = 'TABLE'; | ||
2690 | 257 | SET GLOBAL general_log = ON; | ||
2691 | 258 | SET GLOBAL slow_query_log = ON; | ||
2692 | 259 | LOCK TABLES FOR BACKUP; | ||
2693 | 260 | SELECT 1; | ||
2694 | 261 | 1 | ||
2695 | 262 | 1 | ||
2696 | 263 | LOCK BINLOG FOR BACKUP; | ||
2697 | 264 | SELECT 1; | ||
2698 | 265 | 1 | ||
2699 | 266 | 1 | ||
2700 | 267 | UNLOCK BINLOG; | ||
2701 | 268 | UNLOCK TABLES; | ||
2702 | 269 | SET SESSION long_query_time = @old_long_query_time; | ||
2703 | 270 | SET GLOBAL log_output = @old_log_output; | ||
2704 | 271 | SET GLOBAL slow_query_log = @old_slow_query_log; | ||
2705 | 272 | SET GLOBAL general_log = @old_general_log; | ||
2706 | 273 | #----------------------------------------------------------------------- | ||
2707 | 274 | # Multi-threaded tests | ||
2708 | 275 | #----------------------------------------------------------------------- | ||
2709 | 276 | # connection default | ||
2710 | 277 | CREATE USER user@localhost; | ||
2711 | 278 | GRANT ALL PRIVILEGES ON test.* TO user@localhost; | ||
2712 | 279 | LOCK TABLES FOR BACKUP; | ||
2713 | 280 | # connection con1 | ||
2714 | 281 | SET SESSION lock_wait_timeout = 1; | ||
2715 | 282 | SET GLOBAL delay_key_write=ALL; | ||
2716 | 283 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2717 | 284 | SET SESSION lock_wait_timeout = DEFAULT; | ||
2718 | 285 | # connection default | ||
2719 | 286 | UNLOCK TABLES; | ||
2720 | 287 | # connection con2 | ||
2721 | 288 | START TRANSACTION; | ||
2722 | 289 | INSERT INTO t_innodb VALUES(0); | ||
2723 | 290 | # connection default | ||
2724 | 291 | SET GLOBAL read_only=1; | ||
2725 | 292 | # connection con2 | ||
2726 | 293 | COMMIT; | ||
2727 | 294 | ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement | ||
2728 | 295 | INSERT INTO t_innodb VALUES(0); | ||
2729 | 296 | ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement | ||
2730 | 297 | INSERT INTO t_myisam VALUES(0); | ||
2731 | 298 | ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement | ||
2732 | 299 | # connection con1 | ||
2733 | 300 | LOCK TABLES FOR BACKUP; | ||
2734 | 301 | # connection con2 | ||
2735 | 302 | INSERT INTO t_innodb VALUES(0); | ||
2736 | 303 | ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement | ||
2737 | 304 | INSERT INTO t_myisam VALUES(0); | ||
2738 | 305 | ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement | ||
2739 | 306 | # connection default | ||
2740 | 307 | SET GLOBAL read_only=0; | ||
2741 | 308 | # connection con2 | ||
2742 | 309 | SET SESSION lock_wait_timeout = 1; | ||
2743 | 310 | INSERT INTO t_innodb VALUES(0); | ||
2744 | 311 | INSERT INTO t_myisam VALUES(0); | ||
2745 | 312 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2746 | 313 | SET SESSION lock_wait_timeout = 0; | ||
2747 | 314 | Warnings: | ||
2748 | 315 | Warning 1292 Truncated incorrect lock_wait_timeout value: '0' | ||
2749 | 316 | # connection default | ||
2750 | 317 | SET GLOBAL read_only=1; | ||
2751 | 318 | # connection con2 | ||
2752 | 319 | INSERT INTO t_innodb VALUES(0); | ||
2753 | 320 | ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement | ||
2754 | 321 | INSERT INTO t_myisam VALUES(0); | ||
2755 | 322 | ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement | ||
2756 | 323 | # connection con1 | ||
2757 | 324 | UNLOCK TABLES; | ||
2758 | 325 | # connection con2 | ||
2759 | 326 | INSERT INTO t_innodb VALUES(0); | ||
2760 | 327 | ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement | ||
2761 | 328 | INSERT INTO t_myisam VALUES(0); | ||
2762 | 329 | ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement | ||
2763 | 330 | # connection default | ||
2764 | 331 | SET GLOBAL read_only=0; | ||
2765 | 332 | # connection default | ||
2766 | 333 | LOCK TABLES FOR BACKUP; | ||
2767 | 334 | # connection con1 | ||
2768 | 335 | CREATE TEMPORARY TABLE tt_innodb(a INT NOT NULL) ENGINE=InnoDB; | ||
2769 | 336 | CREATE TEMPORARY TABLE tt_myisam(a INT NOT NULL) ENGINE=MyISAM; | ||
2770 | 337 | CREATE TEMPORARY TABLE tt_memory(a INT NOT NULL) ENGINE=MEMORY; | ||
2771 | 338 | CREATE TEMPORARY TABLE tt_csv(a INT NOT NULL) ENGINE=CSV; | ||
2772 | 339 | CREATE TEMPORARY TABLE tt_blackhole(a INT NOT NULL) ENGINE=BLACKHOLE; | ||
2773 | 340 | CREATE TEMPORARY TABLE tt_archive(a INT NOT NULL) ENGINE=ARCHIVE; | ||
2774 | 341 | INSERT INTO tt_innodb VALUES(5); | ||
2775 | 342 | INSERT INTO tt_myisam VALUES(5); | ||
2776 | 343 | INSERT INTO tt_memory VALUES(5); | ||
2777 | 344 | INSERT INTO tt_csv VALUES(5); | ||
2778 | 345 | INSERT INTO tt_blackhole VALUES(5); | ||
2779 | 346 | INSERT INTO tt_archive VALUES(5); | ||
2780 | 347 | # connection default | ||
2781 | 348 | LOCK BINLOG FOR BACKUP; | ||
2782 | 349 | # connection con1 | ||
2783 | 350 | SET SESSION lock_wait_timeout = 1; | ||
2784 | 351 | START TRANSACTION; | ||
2785 | 352 | INSERT INTO tt_myisam VALUES(6); | ||
2786 | 353 | INSERT INTO tt_innodb VALUES(6); | ||
2787 | 354 | SELECT * FROM tt_archive; | ||
2788 | 355 | a | ||
2789 | 356 | 5 | ||
2790 | 357 | SELECT * FROM tt_blackhole; | ||
2791 | 358 | a | ||
2792 | 359 | SELECT * FROM tt_memory; | ||
2793 | 360 | a | ||
2794 | 361 | 5 | ||
2795 | 362 | SELECT * FROM tt_innodb; | ||
2796 | 363 | a | ||
2797 | 364 | 5 | ||
2798 | 365 | 6 | ||
2799 | 366 | SELECT * FROM tt_myisam; | ||
2800 | 367 | a | ||
2801 | 368 | 5 | ||
2802 | 369 | 6 | ||
2803 | 370 | SELECT * FROM tt_csv; | ||
2804 | 371 | a | ||
2805 | 372 | 5 | ||
2806 | 373 | # connection default | ||
2807 | 374 | must_be_1 | ||
2808 | 375 | 1 | ||
2809 | 376 | UNLOCK BINLOG; | ||
2810 | 377 | UNLOCK TABLES; | ||
2811 | 378 | # connection con1 | ||
2812 | 379 | COMMIT; | ||
2813 | 380 | DROP TEMPORARY TABLE tt_innodb; | ||
2814 | 381 | DROP TEMPORARY TABLE tt_myisam; | ||
2815 | 382 | DROP TEMPORARY TABLE tt_memory; | ||
2816 | 383 | DROP TEMPORARY TABLE tt_csv; | ||
2817 | 384 | DROP TEMPORARY TABLE tt_blackhole; | ||
2818 | 385 | DROP TEMPORARY TABLE tt_archive; | ||
2819 | 386 | # connection default | ||
2820 | 387 | LOCK BINLOG FOR BACKUP; | ||
2821 | 388 | # connection con1 | ||
2822 | 389 | SET SESSION lock_wait_timeout = 1; | ||
2823 | 390 | INSERT INTO t_innodb VALUES(1); | ||
2824 | 391 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2825 | 392 | INSERT INTO t_myisam VALUES(1); | ||
2826 | 393 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2827 | 394 | SET SESSION lock_wait_timeout = DEFAULT; | ||
2828 | 395 | # connection default | ||
2829 | 396 | must_be_1 | ||
2830 | 397 | 1 | ||
2831 | 398 | UNLOCK BINLOG; | ||
2832 | 399 | # connection default | ||
2833 | 400 | LOCK BINLOG FOR BACKUP; | ||
2834 | 401 | # connection con1 | ||
2835 | 402 | SET SESSION lock_wait_timeout = 1; | ||
2836 | 403 | DELETE FROM t_innodb; | ||
2837 | 404 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2838 | 405 | INSERT INTO t_innodb VALUES(0); | ||
2839 | 406 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2840 | 407 | UPDATE t_innodb SET a = 1; | ||
2841 | 408 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2842 | 409 | REPLACE INTO t_innodb VALUES(1); | ||
2843 | 410 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2844 | 411 | SELECT * from t_innodb; | ||
2845 | 412 | a | ||
2846 | 413 | 0 | ||
2847 | 414 | 0 | ||
2848 | 415 | 0 | ||
2849 | 416 | 0 | ||
2850 | 417 | 1 | ||
2851 | 418 | 1 | ||
2852 | 419 | HANDLER t_innodb OPEN; | ||
2853 | 420 | HANDLER t_innodb READ a FIRST; | ||
2854 | 421 | a | ||
2855 | 422 | 0 | ||
2856 | 423 | HANDLER t_innodb CLOSE; | ||
2857 | 424 | START TRANSACTION; | ||
2858 | 425 | SELECT * from t_innodb; | ||
2859 | 426 | a | ||
2860 | 427 | 0 | ||
2861 | 428 | 0 | ||
2862 | 429 | 0 | ||
2863 | 430 | 0 | ||
2864 | 431 | 1 | ||
2865 | 432 | 1 | ||
2866 | 433 | DELETE FROM t_innodb; | ||
2867 | 434 | INSERT INTO t_innodb VALUES(0); | ||
2868 | 435 | UPDATE t_innodb SET a = 1; | ||
2869 | 436 | REPLACE INTO t_innodb VALUES(1); | ||
2870 | 437 | COMMIT; | ||
2871 | 438 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2872 | 439 | SELECT * FROM t_innodb; | ||
2873 | 440 | a | ||
2874 | 441 | 0 | ||
2875 | 442 | 0 | ||
2876 | 443 | 0 | ||
2877 | 444 | 0 | ||
2878 | 445 | 1 | ||
2879 | 446 | 1 | ||
2880 | 447 | COMMIT; | ||
2881 | 448 | START TRANSACTION; | ||
2882 | 449 | INSERT INTO t_myisam VALUES(1); | ||
2883 | 450 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2884 | 451 | COMMIT; | ||
2885 | 452 | INSERT INTO t_myisam VALUES(0); | ||
2886 | 453 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2887 | 454 | UPDATE t_myisam SET a = 1; | ||
2888 | 455 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2889 | 456 | SELECT * FROM t_myisam; | ||
2890 | 457 | a | ||
2891 | 458 | 1 | ||
2892 | 459 | 1 | ||
2893 | 460 | 1 | ||
2894 | 461 | 1 | ||
2895 | 462 | 1 | ||
2896 | 463 | 1 | ||
2897 | 464 | 1 | ||
2898 | 465 | HANDLER t_myisam OPEN; | ||
2899 | 466 | HANDLER t_myisam READ a FIRST; | ||
2900 | 467 | a | ||
2901 | 468 | 1 | ||
2902 | 469 | HANDLER t_myisam CLOSE; | ||
2903 | 470 | DELETE FROM t_blackhole; | ||
2904 | 471 | Warnings: | ||
2905 | 472 | Warning 1870 Row events are not logged for DELETE statements that modify BLACKHOLE tables in row format. Table(s): 't_blackhole.' | ||
2906 | 473 | INSERT INTO t_blackhole VALUES(0); | ||
2907 | 474 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2908 | 475 | UPDATE t_blackhole SET a = 1; | ||
2909 | 476 | Warnings: | ||
2910 | 477 | Warning 1870 Row events are not logged for UPDATE statements that modify BLACKHOLE tables in row format. Table(s): 't_blackhole.' | ||
2911 | 478 | REPLACE INTO t_blackhole VALUES(1); | ||
2912 | 479 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2913 | 480 | SELECT * FROM t_blackhole; | ||
2914 | 481 | a | ||
2915 | 482 | CREATE TABLE tt_innodb(a INT NOT NULL) ENGINE=InnoDB; | ||
2916 | 483 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2917 | 484 | DROP TABLE tt_innodb; | ||
2918 | 485 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2919 | 486 | DROP TABLE non_existing; | ||
2920 | 487 | ERROR 42S02: Unknown table 'test.non_existing' | ||
2921 | 488 | CREATE TABLE t_innodb(a INT NOT NULL) ENGINE=InnoDB; | ||
2922 | 489 | ERROR 42S01: Table 't_innodb' already exists | ||
2923 | 490 | TRUNCATE TABLE t_innodb; | ||
2924 | 491 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2925 | 492 | RENAME TABLE t_innodb TO tmp, tmp to t_innodb; | ||
2926 | 493 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2927 | 494 | ALTER TABLE t_innodb ADD COLUMN b CHAR(10); | ||
2928 | 495 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2929 | 496 | ALTER TABLE t_innodb ADD KEY (a); | ||
2930 | 497 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2931 | 498 | CREATE DATABASE test1; | ||
2932 | 499 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2933 | 500 | DROP DATABASE test1; | ||
2934 | 501 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2935 | 502 | CREATE PROCEDURE p1() SELECT 1; | ||
2936 | 503 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2937 | 504 | DROP PROCEDURE p1; | ||
2938 | 505 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2939 | 506 | CREATE VIEW v1 AS SELECT * FROM t_innodb; | ||
2940 | 507 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2941 | 508 | DROP VIEW v1; | ||
2942 | 509 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2943 | 510 | INSERT INTO v_innodb VALUES(1); | ||
2944 | 511 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
2945 | 512 | # connection default | ||
2946 | 513 | must_be_1 | ||
2947 | 514 | 1 | ||
2948 | 515 | UNLOCK BINLOG; | ||
2949 | 516 | # connection con1 | ||
2950 | 517 | SHOW CREATE TABLE t_innodb; | ||
2951 | 518 | Table Create Table | ||
2952 | 519 | t_innodb CREATE TABLE `t_innodb` ( | ||
2953 | 520 | `a` int(11) NOT NULL, | ||
2954 | 521 | `b` char(10) DEFAULT NULL, | ||
2955 | 522 | KEY `a` (`a`), | ||
2956 | 523 | KEY `a_2` (`a`) | ||
2957 | 524 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1 | ||
2958 | 525 | DROP TABLE t_innodb; | ||
2959 | 526 | CREATE TABLE t_innodb(a INT NOT NULL) ENGINE=InnoDB; | ||
2960 | 527 | # connection default | ||
2961 | 528 | LOCK BINLOG FOR BACKUP; | ||
2962 | 529 | # connection con1 | ||
2963 | 530 | INSERT DELAYED INTO t_myisam VALUES(0); | ||
2964 | 531 | Warnings: | ||
2965 | 532 | Warning 1287 'INSERT DELAYED' is deprecated and will be removed in a future release. Please use INSERT instead | ||
2966 | 533 | # connection default | ||
2967 | 534 | must_be_1 | ||
2968 | 535 | 1 | ||
2969 | 536 | UNLOCK BINLOG; | ||
2970 | 537 | SELECT * FROm t_myisam; | ||
2971 | 538 | a | ||
2972 | 539 | 0 | ||
2973 | 540 | 1 | ||
2974 | 541 | 1 | ||
2975 | 542 | 1 | ||
2976 | 543 | 1 | ||
2977 | 544 | 1 | ||
2978 | 545 | 1 | ||
2979 | 546 | 1 | ||
2980 | 547 | SET @old_general_log = @@general_log; | ||
2981 | 548 | SET @old_slow_query_log = @@slow_query_log; | ||
2982 | 549 | SET @old_log_output = @@log_output; | ||
2983 | 550 | SET GLOBAL log_output = 'TABLE'; | ||
2984 | 551 | SET GLOBAL general_log = ON; | ||
2985 | 552 | SET GLOBAL slow_query_log = ON; | ||
2986 | 553 | LOCK BINLOG FOR BACKUP; | ||
2987 | 554 | # connection con1 | ||
2988 | 555 | SET @old_long_query_time = @@SESSION.long_query_time; | ||
2989 | 556 | SET SESSION long_query_time = 0; | ||
2990 | 557 | SELECT 1; | ||
2991 | 558 | 1 | ||
2992 | 559 | 1 | ||
2993 | 560 | # connection default | ||
2994 | 561 | SELECT 1; | ||
2995 | 562 | 1 | ||
2996 | 563 | 1 | ||
2997 | 564 | # connection con1 | ||
2998 | 565 | SET SESSION long_query_time = @old_long_query_time; | ||
2999 | 566 | # connection default | ||
3000 | 567 | must_be_1 | ||
3001 | 568 | 1 | ||
3002 | 569 | UNLOCK BINLOG; | ||
3003 | 570 | SET GLOBAL log_output = @old_log_output; | ||
3004 | 571 | SET GLOBAL slow_query_log = @old_slow_query_log; | ||
3005 | 572 | SET GLOBAL general_log = @old_general_log; | ||
3006 | 573 | #----------------------------------------------------------------------- | ||
3007 | 574 | # Cleanup | ||
3008 | 575 | #----------------------------------------------------------------------- | ||
3009 | 576 | DROP USER user@localhost; | ||
3010 | 577 | DROP VIEW v_innodb, v_myisam, v_memory, v_csv, v_blackhole, v_archive; | ||
3011 | 578 | DROP TABLE t_innodb, t_myisam, t_memory, t_csv, t_blackhole, t_archive; | ||
3012 | 579 | SET GLOBAL binlog_format = @old_binlog_format; | ||
3013 | 0 | 580 | ||
3014 | === added file 'mysql-test/r/backup_locks_binlog_stmt.result' | |||
3015 | --- mysql-test/r/backup_locks_binlog_stmt.result 1970-01-01 00:00:00 +0000 | |||
3016 | +++ mysql-test/r/backup_locks_binlog_stmt.result 2014-02-20 11:26:00 +0000 | |||
3017 | @@ -0,0 +1,575 @@ | |||
3018 | 1 | SET @old_binlog_format=@@binlog_format; | ||
3019 | 2 | SET GLOBAL binlog_format='STATEMENT'; | ||
3020 | 3 | SET SESSION binlog_format='STATEMENT'; | ||
3021 | 4 | SELECT @@binlog_format; | ||
3022 | 5 | @@binlog_format | ||
3023 | 6 | STATEMENT | ||
3024 | 7 | RESET MASTER; | ||
3025 | 8 | SHOW VARIABLES LIKE 'have_backup_locks'; | ||
3026 | 9 | Variable_name Value | ||
3027 | 10 | have_backup_locks YES | ||
3028 | 11 | #----------------------------------------------------------------------- | ||
3029 | 12 | # Setup | ||
3030 | 13 | #----------------------------------------------------------------------- | ||
3031 | 14 | CREATE TABLE t_innodb(a INT NOT NULL, KEY (a)) ENGINE=InnoDB; | ||
3032 | 15 | CREATE TABLE t_myisam(a INT NOT NULL, KEY (a)) ENGINE=MyISAM; | ||
3033 | 16 | CREATE TABLE t_memory(a INT NOT NULL, KEY (a)) ENGINE=MEMORY; | ||
3034 | 17 | CREATE TABLE t_csv(a INT NOT NULL) ENGINE=CSV; | ||
3035 | 18 | CREATE TABLE t_blackhole(a INT NOT NULL, KEY (a)) ENGINE=BLACKHOLE; | ||
3036 | 19 | CREATE TABLE t_archive(a INT NOT NULL) ENGINE=ARCHIVE; | ||
3037 | 20 | CREATE VIEW v_innodb AS SELECT * FROM t_innodb; | ||
3038 | 21 | CREATE VIEW v_myisam AS SELECT * FROM t_myisam; | ||
3039 | 22 | CREATE VIEW v_memory AS SELECT * FROM t_memory; | ||
3040 | 23 | CREATE VIEW v_csv AS SELECT * FROM t_csv; | ||
3041 | 24 | CREATE VIEW v_blackhole AS SELECT * FROM t_blackhole; | ||
3042 | 25 | CREATE VIEW v_archive AS SELECT * FROM t_archive; | ||
3043 | 26 | #----------------------------------------------------------------------- | ||
3044 | 27 | # Single-threaded tests | ||
3045 | 28 | #----------------------------------------------------------------------- | ||
3046 | 29 | LOCK BINLOG FOR BACKUP; | ||
3047 | 30 | DELETE FROM t_innodb; | ||
3048 | 31 | INSERT INTO t_innodb VALUES(0); | ||
3049 | 32 | UPDATE t_innodb SET a = 1; | ||
3050 | 33 | REPLACE INTO t_innodb VALUES(1); | ||
3051 | 34 | SELECT * from t_innodb; | ||
3052 | 35 | a | ||
3053 | 36 | 1 | ||
3054 | 37 | 1 | ||
3055 | 38 | HANDLER t_innodb OPEN; | ||
3056 | 39 | HANDLER t_innodb READ a FIRST; | ||
3057 | 40 | a | ||
3058 | 41 | 1 | ||
3059 | 42 | HANDLER t_innodb CLOSE; | ||
3060 | 43 | DELETE FROM t_myisam; | ||
3061 | 44 | INSERT INTO t_myisam VALUES(0); | ||
3062 | 45 | UPDATE t_myisam SET a = 1; | ||
3063 | 46 | REPLACE INTO t_myisam VALUES(1); | ||
3064 | 47 | SELECT * from t_myisam; | ||
3065 | 48 | a | ||
3066 | 49 | 1 | ||
3067 | 50 | 1 | ||
3068 | 51 | HANDLER t_myisam OPEN; | ||
3069 | 52 | HANDLER t_myisam READ a FIRST; | ||
3070 | 53 | a | ||
3071 | 54 | 1 | ||
3072 | 55 | HANDLER t_myisam CLOSE; | ||
3073 | 56 | DELETE FROM t_memory; | ||
3074 | 57 | INSERT INTO t_memory VALUES(0); | ||
3075 | 58 | UPDATE t_memory SET a = 1; | ||
3076 | 59 | REPLACE INTO t_memory VALUES(1); | ||
3077 | 60 | SELECT * from t_memory; | ||
3078 | 61 | a | ||
3079 | 62 | 1 | ||
3080 | 63 | 1 | ||
3081 | 64 | DELETE FROM t_archive; | ||
3082 | 65 | INSERT INTO t_archive VALUES(0); | ||
3083 | 66 | SELECT * from t_archive; | ||
3084 | 67 | a | ||
3085 | 68 | 0 | ||
3086 | 69 | DELETE FROM t_csv; | ||
3087 | 70 | INSERT INTO t_csv VALUES(0); | ||
3088 | 71 | UPDATE t_csv SET a = 1; | ||
3089 | 72 | REPLACE INTO t_csv VALUES(1); | ||
3090 | 73 | SELECT * from t_csv; | ||
3091 | 74 | a | ||
3092 | 75 | 1 | ||
3093 | 76 | 1 | ||
3094 | 77 | DELETE FROM t_blackhole; | ||
3095 | 78 | INSERT INTO t_blackhole VALUES(0); | ||
3096 | 79 | UPDATE t_blackhole SET a = 1; | ||
3097 | 80 | REPLACE INTO t_blackhole VALUES(1); | ||
3098 | 81 | SELECT * from t_blackhole; | ||
3099 | 82 | a | ||
3100 | 83 | CREATE TABLE tt_innodb(a INT NOT NULL) ENGINE=InnoDB; | ||
3101 | 84 | CREATE TABLE tt_myisam(a INT NOT NULL) ENGINE=MyISAM; | ||
3102 | 85 | CREATE TABLE tt_memory(a INT NOT NULL) ENGINE=MEMORY; | ||
3103 | 86 | CREATE TABLE tt_csv(a INT NOT NULL) ENGINE=CSV; | ||
3104 | 87 | CREATE TABLE tt_blackhole(a INT NOT NULL) ENGINE=BLACKHOLE; | ||
3105 | 88 | CREATE TABLE tt_archive(a INT NOT NULL) ENGINE=ARCHIVE; | ||
3106 | 89 | DROP TABLE tt_innodb; | ||
3107 | 90 | DROP TABLE tt_myisam; | ||
3108 | 91 | DROP TABLE tt_memory; | ||
3109 | 92 | DROP TABLE tt_csv; | ||
3110 | 93 | DROP TABLE tt_blackhole; | ||
3111 | 94 | DROP TABLE tt_archive; | ||
3112 | 95 | DROP TABLE non_existing; | ||
3113 | 96 | ERROR 42S02: Unknown table 'test.non_existing' | ||
3114 | 97 | TRUNCATE TABLE t_innodb; | ||
3115 | 98 | TRUNCATE TABLE t_myisam; | ||
3116 | 99 | TRUNCATE TABLE t_memory; | ||
3117 | 100 | TRUNCATE TABLE t_csv; | ||
3118 | 101 | TRUNCATE TABLE t_blackhole; | ||
3119 | 102 | RENAME TABLE t_innodb TO tmp, tmp TO t_innodb; | ||
3120 | 103 | RENAME TABLE t_myisam TO tmp, tmp TO t_myisam; | ||
3121 | 104 | RENAME TABLE t_memory TO tmp, tmp TO t_memory; | ||
3122 | 105 | RENAME TABLE t_csv TO tmp, tmp TO t_csv; | ||
3123 | 106 | RENAME TABLE t_blackhole TO tmp, tmp TO t_blackhole; | ||
3124 | 107 | RENAME TABLE t_archive TO tmp, tmp TO t_archive; | ||
3125 | 108 | ALTER TABLE t_innodb ADD COLUMN b CHAR(10) NOT NULL; | ||
3126 | 109 | ALTER TABLE t_innodb DROP COLUMN b; | ||
3127 | 110 | ALTER TABLE t_myisam ADD COLUMN b CHAR(10) NOT NULL; | ||
3128 | 111 | ALTER TABLE t_myisam DROP COLUMN b; | ||
3129 | 112 | ALTER TABLE t_memory ADD COLUMN b CHAR(10) NOT NULL; | ||
3130 | 113 | ALTER TABLE t_memory DROP COLUMN b; | ||
3131 | 114 | ALTER TABLE t_csv ADD COLUMN b CHAR(10) NOT NULL; | ||
3132 | 115 | ALTER TABLE t_csv DROP COLUMN b; | ||
3133 | 116 | ALTER TABLE t_blackhole ADD COLUMN b CHAR(10) NOT NULL; | ||
3134 | 117 | ALTER TABLE t_blackhole DROP COLUMN b; | ||
3135 | 118 | ALTER TABLE t_archive ADD COLUMN b CHAR(10) NOT NULL; | ||
3136 | 119 | ALTER TABLE t_archive DROP COLUMN b; | ||
3137 | 120 | ALTER TABLE t_innodb ADD KEY tmp (a); | ||
3138 | 121 | Warnings: | ||
3139 | 122 | Note 1831 Duplicate index 'tmp' defined on the table 'test.t_innodb'. This is deprecated and will be disallowed in a future release. | ||
3140 | 123 | ALTER TABLE t_innodb DROP KEY tmp; | ||
3141 | 124 | ALTER TABLE t_myisam ADD KEY tmp (a); | ||
3142 | 125 | Warnings: | ||
3143 | 126 | Note 1831 Duplicate index 'tmp' defined on the table 'test.t_myisam'. This is deprecated and will be disallowed in a future release. | ||
3144 | 127 | ALTER TABLE t_myisam DROP KEY tmp; | ||
3145 | 128 | ALTER TABLE t_memory ADD KEY tmp (a); | ||
3146 | 129 | Warnings: | ||
3147 | 130 | Note 1831 Duplicate index 'tmp' defined on the table 'test.t_memory'. This is deprecated and will be disallowed in a future release. | ||
3148 | 131 | ALTER TABLE t_memory DROP KEY tmp; | ||
3149 | 132 | ALTER TABLE t_blackhole ADD KEY tmp (a); | ||
3150 | 133 | Warnings: | ||
3151 | 134 | Note 1831 Duplicate index 'tmp' defined on the table 'test.t_blackhole'. This is deprecated and will be disallowed in a future release. | ||
3152 | 135 | ALTER TABLE t_blackhole DROP KEY tmp; | ||
3153 | 136 | CREATE DATABASE test1; | ||
3154 | 137 | DROP DATABASE test1; | ||
3155 | 138 | CREATE PROCEDURE p1() | ||
3156 | 139 | BEGIN | ||
3157 | 140 | SELECT 1; | ||
3158 | 141 | END| | ||
3159 | 142 | DROP PROCEDURE p1| | ||
3160 | 143 | CREATE FUNCTION f1() RETURNS INT DETERMINISTIC | ||
3161 | 144 | BEGIN | ||
3162 | 145 | RETURN 1; | ||
3163 | 146 | END| | ||
3164 | 147 | DROP FUNCTION f1| | ||
3165 | 148 | CREATE VIEW v1 AS SELECT * FROM t_innodb; | ||
3166 | 149 | DROP VIEW v1; | ||
3167 | 150 | INSERT INTO v_innodb VALUES(1); | ||
3168 | 151 | INSERT INTO v_blackhole VALUES(1); | ||
3169 | 152 | INSERT INTO v_myisam VALUES(1); | ||
3170 | 153 | INSERT INTO v_csv VALUES(1); | ||
3171 | 154 | INSERT INTO v_memory VALUES(1); | ||
3172 | 155 | INSERT INTO v_archive VALUES(1); | ||
3173 | 156 | UNLOCK BINLOG; | ||
3174 | 157 | SELECT @@delay_key_write; | ||
3175 | 158 | @@delay_key_write | ||
3176 | 159 | ON | ||
3177 | 160 | SET GLOBAL delay_key_write=ALL; | ||
3178 | 161 | LOCK TABLES FOR BACKUP; | ||
3179 | 162 | ERROR HY000: The MySQL server is running with the delay_key_write=ALL option so it cannot execute this statement | ||
3180 | 163 | SET GLOBAL delay_key_write=default; | ||
3181 | 164 | SELECT @@delay_key_write; | ||
3182 | 165 | @@delay_key_write | ||
3183 | 166 | ON | ||
3184 | 167 | SET GLOBAL read_only=1; | ||
3185 | 168 | INSERT INTO t_innodb VALUES(0); | ||
3186 | 169 | INSERT INTO t_myisam VALUES(0); | ||
3187 | 170 | LOCK TABLES FOR BACKUP; | ||
3188 | 171 | INSERT INTO t_innodb VALUES(0); | ||
3189 | 172 | INSERT INTO t_myisam VALUES(0); | ||
3190 | 173 | ERROR HY000: Can’t execute the query because you have a conflicting backup lock | ||
3191 | 174 | UNLOCK TABLES; | ||
3192 | 175 | INSERT INTO t_innodb VALUES(0); | ||
3193 | 176 | INSERT INTO t_myisam VALUES(0); | ||
3194 | 177 | SET GLOBAL read_only=0; | ||
3195 | 178 | LOCK TABLES FOR BACKUP; | ||
3196 | 179 | CREATE TEMPORARY TABLE tt_innodb(a INT NOT NULL) ENGINE=InnoDB; | ||
3197 | 180 | CREATE TEMPORARY TABLE tt_myisam(a INT NOT NULL) ENGINE=MyISAM; | ||
3198 | 181 | CREATE TEMPORARY TABLE tt_memory(a INT NOT NULL) ENGINE=MEMORY; | ||
3199 | 182 | CREATE TEMPORARY TABLE tt_csv(a INT NOT NULL) ENGINE=CSV; | ||
3200 | 183 | CREATE TEMPORARY TABLE tt_blackhole(a INT NOT NULL) ENGINE=BLACKHOLE; | ||
3201 | 184 | CREATE TEMPORARY TABLE tt_archive(a INT NOT NULL) ENGINE=ARCHIVE; | ||
3202 | 185 | INSERT INTO tt_innodb VALUES(5); | ||
3203 | 186 | INSERT INTO tt_myisam VALUES(5); | ||
3204 | 187 | INSERT INTO tt_memory VALUES(5); | ||
3205 | 188 | INSERT INTO tt_csv VALUES(5); | ||
3206 | 189 | INSERT INTO tt_blackhole VALUES(5); | ||
3207 | 190 | INSERT INTO tt_archive VALUES(5); | ||
3208 | 191 | LOCK BINLOG FOR BACKUP; | ||
3209 | 192 | START TRANSACTION; | ||
3210 | 193 | SELECT * FROM tt_archive; | ||
3211 | 194 | a | ||
3212 | 195 | 5 | ||
3213 | 196 | SELECT * FROM tt_blackhole; | ||
3214 | 197 | a | ||
3215 | 198 | SELECT * FROM tt_memory; | ||
3216 | 199 | a | ||
3217 | 200 | 5 | ||
3218 | 201 | SELECT * FROM tt_innodb; | ||
3219 | 202 | a | ||
3220 | 203 | 5 | ||
3221 | 204 | SELECT * FROM tt_myisam; | ||
3222 | 205 | a | ||
3223 | 206 | 5 | ||
3224 | 207 | INSERT INTO tt_innodb VALUES(6); | ||
3225 | 208 | INSERT INTO tt_myisam VALUES(6); | ||
3226 | 209 | INSERT INTO tt_memory VALUES(6); | ||
3227 | 210 | INSERT INTO tt_csv VALUES(6); | ||
3228 | 211 | INSERT INTO tt_blackhole VALUES(6); | ||
3229 | 212 | INSERT INTO tt_archive VALUES(6); | ||
3230 | 213 | COMMIT; | ||
3231 | 214 | SELECT * FROM tt_archive; | ||
3232 | 215 | a | ||
3233 | 216 | 5 | ||
3234 | 217 | 6 | ||
3235 | 218 | SELECT * FROM tt_blackhole; | ||
3236 | 219 | a | ||
3237 | 220 | SELECT * FROM tt_memory; | ||
3238 | 221 | a | ||
3239 | 222 | 5 | ||
3240 | 223 | 6 | ||
3241 | 224 | SELECT * FROM tt_innodb; | ||
3242 | 225 | a | ||
3243 | 226 | 5 | ||
3244 | 227 | 6 | ||
3245 | 228 | SELECT * FROM tt_myisam; | ||
3246 | 229 | a | ||
3247 | 230 | 5 | ||
3248 | 231 | 6 | ||
3249 | 232 | DROP TEMPORARY TABLE tt_innodb; | ||
3250 | 233 | DROP TEMPORARY TABLE tt_myisam; | ||
3251 | 234 | DROP TEMPORARY TABLE tt_memory; | ||
3252 | 235 | DROP TEMPORARY TABLE tt_csv; | ||
3253 | 236 | DROP TEMPORARY TABLE tt_blackhole; | ||
3254 | 237 | DROP TEMPORARY TABLE tt_archive; | ||
3255 | 238 | UNLOCK BINLOG; | ||
3256 | 239 | UNLOCK TABLES; | ||
3257 | 240 | SELECT @@log_bin; | ||
3258 | 241 | @@log_bin | ||
3259 | 242 | 1 | ||
3260 | 243 | LOCK BINLOG FOR BACKUP; | ||
3261 | 244 | INSERT INTO t_innodb VALUES(1); | ||
3262 | 245 | INSERT INTO t_myisam VALUES(1); | ||
3263 | 246 | UNLOCK BINLOG; | ||
3264 | 247 | SET @old_general_log = @@general_log; | ||
3265 | 248 | SET @old_slow_query_log = @@slow_query_log; | ||
3266 | 249 | SET @old_log_output = @@log_output; | ||
3267 | 250 | SET @old_long_query_time = @@SESSION.long_query_time; | ||
3268 | 251 | SET SESSION long_query_time = 0; | ||
3269 | 252 | SET GLOBAL log_output = 'TABLE'; | ||
3270 | 253 | SET GLOBAL general_log = ON; | ||
3271 | 254 | SET GLOBAL slow_query_log = ON; | ||
3272 | 255 | LOCK TABLES FOR BACKUP; | ||
3273 | 256 | SELECT 1; | ||
3274 | 257 | 1 | ||
3275 | 258 | 1 | ||
3276 | 259 | LOCK BINLOG FOR BACKUP; | ||
3277 | 260 | SELECT 1; | ||
3278 | 261 | 1 | ||
3279 | 262 | 1 | ||
3280 | 263 | UNLOCK BINLOG; | ||
3281 | 264 | UNLOCK TABLES; | ||
3282 | 265 | SET SESSION long_query_time = @old_long_query_time; | ||
3283 | 266 | SET GLOBAL log_output = @old_log_output; | ||
3284 | 267 | SET GLOBAL slow_query_log = @old_slow_query_log; | ||
3285 | 268 | SET GLOBAL general_log = @old_general_log; | ||
3286 | 269 | #----------------------------------------------------------------------- | ||
3287 | 270 | # Multi-threaded tests | ||
3288 | 271 | #----------------------------------------------------------------------- | ||
3289 | 272 | # connection default | ||
3290 | 273 | CREATE USER user@localhost; | ||
3291 | 274 | GRANT ALL PRIVILEGES ON test.* TO user@localhost; | ||
3292 | 275 | LOCK TABLES FOR BACKUP; | ||
3293 | 276 | # connection con1 | ||
3294 | 277 | SET SESSION lock_wait_timeout = 1; | ||
3295 | 278 | SET GLOBAL delay_key_write=ALL; | ||
3296 | 279 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
3297 | 280 | SET SESSION lock_wait_timeout = DEFAULT; | ||
3298 | 281 | # connection default | ||
3299 | 282 | UNLOCK TABLES; | ||
3300 | 283 | # connection con2 | ||
3301 | 284 | START TRANSACTION; | ||
3302 | 285 | INSERT INTO t_innodb VALUES(0); | ||
3303 | 286 | # connection default | ||
3304 | 287 | SET GLOBAL read_only=1; | ||
3305 | 288 | # connection con2 | ||
3306 | 289 | COMMIT; | ||
3307 | 290 | ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement | ||
3308 | 291 | INSERT INTO t_innodb VALUES(0); | ||
3309 | 292 | ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement | ||
3310 | 293 | INSERT INTO t_myisam VALUES(0); | ||
3311 | 294 | ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement | ||
3312 | 295 | # connection con1 | ||
3313 | 296 | LOCK TABLES FOR BACKUP; | ||
3314 | 297 | # connection con2 | ||
3315 | 298 | INSERT INTO t_innodb VALUES(0); | ||
3316 | 299 | ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement | ||
3317 | 300 | INSERT INTO t_myisam VALUES(0); | ||
3318 | 301 | ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement | ||
3319 | 302 | # connection default | ||
3320 | 303 | SET GLOBAL read_only=0; | ||
3321 | 304 | # connection con2 | ||
3322 | 305 | SET SESSION lock_wait_timeout = 1; | ||
3323 | 306 | INSERT INTO t_innodb VALUES(0); | ||
3324 | 307 | INSERT INTO t_myisam VALUES(0); | ||
3325 | 308 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
3326 | 309 | SET SESSION lock_wait_timeout = 0; | ||
3327 | 310 | Warnings: | ||
3328 | 311 | Warning 1292 Truncated incorrect lock_wait_timeout value: '0' | ||
3329 | 312 | # connection default | ||
3330 | 313 | SET GLOBAL read_only=1; | ||
3331 | 314 | # connection con2 | ||
3332 | 315 | INSERT INTO t_innodb VALUES(0); | ||
3333 | 316 | ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement | ||
3334 | 317 | INSERT INTO t_myisam VALUES(0); | ||
3335 | 318 | ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement | ||
3336 | 319 | # connection con1 | ||
3337 | 320 | UNLOCK TABLES; | ||
3338 | 321 | # connection con2 | ||
3339 | 322 | INSERT INTO t_innodb VALUES(0); | ||
3340 | 323 | ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement | ||
3341 | 324 | INSERT INTO t_myisam VALUES(0); | ||
3342 | 325 | ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement | ||
3343 | 326 | # connection default | ||
3344 | 327 | SET GLOBAL read_only=0; | ||
3345 | 328 | # connection default | ||
3346 | 329 | LOCK TABLES FOR BACKUP; | ||
3347 | 330 | # connection con1 | ||
3348 | 331 | CREATE TEMPORARY TABLE tt_innodb(a INT NOT NULL) ENGINE=InnoDB; | ||
3349 | 332 | CREATE TEMPORARY TABLE tt_myisam(a INT NOT NULL) ENGINE=MyISAM; | ||
3350 | 333 | CREATE TEMPORARY TABLE tt_memory(a INT NOT NULL) ENGINE=MEMORY; | ||
3351 | 334 | CREATE TEMPORARY TABLE tt_csv(a INT NOT NULL) ENGINE=CSV; | ||
3352 | 335 | CREATE TEMPORARY TABLE tt_blackhole(a INT NOT NULL) ENGINE=BLACKHOLE; | ||
3353 | 336 | CREATE TEMPORARY TABLE tt_archive(a INT NOT NULL) ENGINE=ARCHIVE; | ||
3354 | 337 | INSERT INTO tt_innodb VALUES(5); | ||
3355 | 338 | INSERT INTO tt_myisam VALUES(5); | ||
3356 | 339 | INSERT INTO tt_memory VALUES(5); | ||
3357 | 340 | INSERT INTO tt_csv VALUES(5); | ||
3358 | 341 | INSERT INTO tt_blackhole VALUES(5); | ||
3359 | 342 | INSERT INTO tt_archive VALUES(5); | ||
3360 | 343 | # connection default | ||
3361 | 344 | LOCK BINLOG FOR BACKUP; | ||
3362 | 345 | # connection con1 | ||
3363 | 346 | SET SESSION lock_wait_timeout = 1; | ||
3364 | 347 | START TRANSACTION; | ||
3365 | 348 | INSERT INTO tt_myisam VALUES(6); | ||
3366 | 349 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
3367 | 350 | INSERT INTO tt_innodb VALUES(6); | ||
3368 | 351 | SELECT * FROM tt_archive; | ||
3369 | 352 | a | ||
3370 | 353 | 5 | ||
3371 | 354 | SELECT * FROM tt_blackhole; | ||
3372 | 355 | a | ||
3373 | 356 | SELECT * FROM tt_memory; | ||
3374 | 357 | a | ||
3375 | 358 | 5 | ||
3376 | 359 | SELECT * FROM tt_innodb; | ||
3377 | 360 | a | ||
3378 | 361 | 5 | ||
3379 | 362 | 6 | ||
3380 | 363 | SELECT * FROM tt_myisam; | ||
3381 | 364 | a | ||
3382 | 365 | 5 | ||
3383 | 366 | 6 | ||
3384 | 367 | SELECT * FROM tt_csv; | ||
3385 | 368 | a | ||
3386 | 369 | 5 | ||
3387 | 370 | COMMIT; | ||
3388 | 371 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
3389 | 372 | # connection default | ||
3390 | 373 | must_be_1 | ||
3391 | 374 | 1 | ||
3392 | 375 | UNLOCK BINLOG; | ||
3393 | 376 | UNLOCK TABLES; | ||
3394 | 377 | # connection con1 | ||
3395 | 378 | COMMIT; | ||
3396 | 379 | DROP TEMPORARY TABLE tt_innodb; | ||
3397 | 380 | DROP TEMPORARY TABLE tt_myisam; | ||
3398 | 381 | DROP TEMPORARY TABLE tt_memory; | ||
3399 | 382 | DROP TEMPORARY TABLE tt_csv; | ||
3400 | 383 | DROP TEMPORARY TABLE tt_blackhole; | ||
3401 | 384 | DROP TEMPORARY TABLE tt_archive; | ||
3402 | 385 | # connection default | ||
3403 | 386 | LOCK BINLOG FOR BACKUP; | ||
3404 | 387 | # connection con1 | ||
3405 | 388 | SET SESSION lock_wait_timeout = 1; | ||
3406 | 389 | INSERT INTO t_innodb VALUES(1); | ||
3407 | 390 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
3408 | 391 | INSERT INTO t_myisam VALUES(1); | ||
3409 | 392 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
3410 | 393 | SET SESSION lock_wait_timeout = DEFAULT; | ||
3411 | 394 | # connection default | ||
3412 | 395 | must_be_1 | ||
3413 | 396 | 1 | ||
3414 | 397 | UNLOCK BINLOG; | ||
3415 | 398 | # connection default | ||
3416 | 399 | LOCK BINLOG FOR BACKUP; | ||
3417 | 400 | # connection con1 | ||
3418 | 401 | SET SESSION lock_wait_timeout = 1; | ||
3419 | 402 | DELETE FROM t_innodb; | ||
3420 | 403 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
3421 | 404 | INSERT INTO t_innodb VALUES(0); | ||
3422 | 405 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
3423 | 406 | UPDATE t_innodb SET a = 1; | ||
3424 | 407 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
3425 | 408 | REPLACE INTO t_innodb VALUES(1); | ||
3426 | 409 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
3427 | 410 | SELECT * from t_innodb; | ||
3428 | 411 | a | ||
3429 | 412 | 0 | ||
3430 | 413 | 0 | ||
3431 | 414 | 0 | ||
3432 | 415 | 0 | ||
3433 | 416 | 1 | ||
3434 | 417 | 1 | ||
3435 | 418 | HANDLER t_innodb OPEN; | ||
3436 | 419 | HANDLER t_innodb READ a FIRST; | ||
3437 | 420 | a | ||
3438 | 421 | 0 | ||
3439 | 422 | HANDLER t_innodb CLOSE; | ||
3440 | 423 | START TRANSACTION; | ||
3441 | 424 | SELECT * from t_innodb; | ||
3442 | 425 | a | ||
3443 | 426 | 0 | ||
3444 | 427 | 0 | ||
3445 | 428 | 0 | ||
3446 | 429 | 0 | ||
3447 | 430 | 1 | ||
3448 | 431 | 1 | ||
3449 | 432 | DELETE FROM t_innodb; | ||
3450 | 433 | INSERT INTO t_innodb VALUES(0); | ||
3451 | 434 | UPDATE t_innodb SET a = 1; | ||
3452 | 435 | REPLACE INTO t_innodb VALUES(1); | ||
3453 | 436 | COMMIT; | ||
3454 | 437 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
3455 | 438 | SELECT * FROM t_innodb; | ||
3456 | 439 | a | ||
3457 | 440 | 0 | ||
3458 | 441 | 0 | ||
3459 | 442 | 0 | ||
3460 | 443 | 0 | ||
3461 | 444 | 1 | ||
3462 | 445 | 1 | ||
3463 | 446 | COMMIT; | ||
3464 | 447 | START TRANSACTION; | ||
3465 | 448 | INSERT INTO t_myisam VALUES(1); | ||
3466 | 449 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
3467 | 450 | COMMIT; | ||
3468 | 451 | INSERT INTO t_myisam VALUES(0); | ||
3469 | 452 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
3470 | 453 | UPDATE t_myisam SET a = 1; | ||
3471 | 454 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
3472 | 455 | SELECT * FROM t_myisam; | ||
3473 | 456 | a | ||
3474 | 457 | 1 | ||
3475 | 458 | 1 | ||
3476 | 459 | 1 | ||
3477 | 460 | 1 | ||
3478 | 461 | 1 | ||
3479 | 462 | 1 | ||
3480 | 463 | 1 | ||
3481 | 464 | HANDLER t_myisam OPEN; | ||
3482 | 465 | HANDLER t_myisam READ a FIRST; | ||
3483 | 466 | a | ||
3484 | 467 | 1 | ||
3485 | 468 | HANDLER t_myisam CLOSE; | ||
3486 | 469 | DELETE FROM t_blackhole; | ||
3487 | 470 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
3488 | 471 | INSERT INTO t_blackhole VALUES(0); | ||
3489 | 472 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
3490 | 473 | UPDATE t_blackhole SET a = 1; | ||
3491 | 474 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
3492 | 475 | REPLACE INTO t_blackhole VALUES(1); | ||
3493 | 476 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
3494 | 477 | SELECT * FROM t_blackhole; | ||
3495 | 478 | a | ||
3496 | 479 | CREATE TABLE tt_innodb(a INT NOT NULL) ENGINE=InnoDB; | ||
3497 | 480 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
3498 | 481 | DROP TABLE tt_innodb; | ||
3499 | 482 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
3500 | 483 | DROP TABLE non_existing; | ||
3501 | 484 | ERROR 42S02: Unknown table 'test.non_existing' | ||
3502 | 485 | CREATE TABLE t_innodb(a INT NOT NULL) ENGINE=InnoDB; | ||
3503 | 486 | ERROR 42S01: Table 't_innodb' already exists | ||
3504 | 487 | TRUNCATE TABLE t_innodb; | ||
3505 | 488 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
3506 | 489 | RENAME TABLE t_innodb TO tmp, tmp to t_innodb; | ||
3507 | 490 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
3508 | 491 | ALTER TABLE t_innodb ADD COLUMN b CHAR(10); | ||
3509 | 492 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
3510 | 493 | ALTER TABLE t_innodb ADD KEY (a); | ||
3511 | 494 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
3512 | 495 | CREATE DATABASE test1; | ||
3513 | 496 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
3514 | 497 | DROP DATABASE test1; | ||
3515 | 498 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
3516 | 499 | CREATE PROCEDURE p1() SELECT 1; | ||
3517 | 500 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
3518 | 501 | DROP PROCEDURE p1; | ||
3519 | 502 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
3520 | 503 | CREATE VIEW v1 AS SELECT * FROM t_innodb; | ||
3521 | 504 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
3522 | 505 | DROP VIEW v1; | ||
3523 | 506 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
3524 | 507 | INSERT INTO v_innodb VALUES(1); | ||
3525 | 508 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
3526 | 509 | # connection default | ||
3527 | 510 | must_be_1 | ||
3528 | 511 | 1 | ||
3529 | 512 | UNLOCK BINLOG; | ||
3530 | 513 | # connection con1 | ||
3531 | 514 | SHOW CREATE TABLE t_innodb; | ||
3532 | 515 | Table Create Table | ||
3533 | 516 | t_innodb CREATE TABLE `t_innodb` ( | ||
3534 | 517 | `a` int(11) NOT NULL, | ||
3535 | 518 | `b` char(10) DEFAULT NULL, | ||
3536 | 519 | KEY `a` (`a`), | ||
3537 | 520 | KEY `a_2` (`a`) | ||
3538 | 521 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1 | ||
3539 | 522 | DROP TABLE t_innodb; | ||
3540 | 523 | CREATE TABLE t_innodb(a INT NOT NULL) ENGINE=InnoDB; | ||
3541 | 524 | # connection default | ||
3542 | 525 | LOCK BINLOG FOR BACKUP; | ||
3543 | 526 | # connection con1 | ||
3544 | 527 | INSERT DELAYED INTO t_myisam VALUES(0); | ||
3545 | 528 | ERROR HY000: Lock wait timeout exceeded; try restarting transaction | ||
3546 | 529 | # connection default | ||
3547 | 530 | must_be_1 | ||
3548 | 531 | 1 | ||
3549 | 532 | UNLOCK BINLOG; | ||
3550 | 533 | SELECT * FROm t_myisam; | ||
3551 | 534 | a | ||
3552 | 535 | 0 | ||
3553 | 536 | 1 | ||
3554 | 537 | 1 | ||
3555 | 538 | 1 | ||
3556 | 539 | 1 | ||
3557 | 540 | 1 | ||
3558 | 541 | 1 | ||
3559 | 542 | 1 | ||
3560 | 543 | SET @old_general_log = @@general_log; | ||
3561 | 544 | SET @old_slow_query_log = @@slow_query_log; | ||
3562 | 545 | SET @old_log_output = @@log_output; | ||
3563 | 546 | SET GLOBAL log_output = 'TABLE'; | ||
3564 | 547 | SET GLOBAL general_log = ON; | ||
3565 | 548 | SET GLOBAL slow_query_log = ON; | ||
3566 | 549 | LOCK BINLOG FOR BACKUP; | ||
3567 | 550 | # connection con1 | ||
3568 | 551 | SET @old_long_query_time = @@SESSION.long_query_time; | ||
3569 | 552 | SET SESSION long_query_time = 0; | ||
3570 | 553 | SELECT 1; | ||
3571 | 554 | 1 | ||
3572 | 555 | 1 | ||
3573 | 556 | # connection default | ||
3574 | 557 | SELECT 1; | ||
3575 | 558 | 1 | ||
3576 | 559 | 1 | ||
3577 | 560 | # connection con1 | ||
3578 | 561 | SET SESSION long_query_time = @old_long_query_time; | ||
3579 | 562 | # connection default | ||
3580 | 563 | must_be_1 | ||
3581 | 564 | 1 | ||
3582 | 565 | UNLOCK BINLOG; | ||
3583 | 566 | SET GLOBAL log_output = @old_log_output; | ||
3584 | 567 | SET GLOBAL slow_query_log = @old_slow_query_log; | ||
3585 | 568 | SET GLOBAL general_log = @old_general_log; | ||
3586 | 569 | #----------------------------------------------------------------------- | ||
3587 | 570 | # Cleanup | ||
3588 | 571 | #----------------------------------------------------------------------- | ||
3589 | 572 | DROP USER user@localhost; | ||
3590 | 573 | DROP VIEW v_innodb, v_myisam, v_memory, v_csv, v_blackhole, v_archive; | ||
3591 | 574 | DROP TABLE t_innodb, t_myisam, t_memory, t_csv, t_blackhole, t_archive; | ||
3592 | 575 | SET GLOBAL binlog_format = @old_binlog_format; | ||
3593 | 0 | 576 | ||
3594 | === added file 'mysql-test/r/backup_locks_mysqldump.result' | |||
3595 | --- mysql-test/r/backup_locks_mysqldump.result 1970-01-01 00:00:00 +0000 | |||
3596 | +++ mysql-test/r/backup_locks_mysqldump.result 2014-02-20 11:26:00 +0000 | |||
3597 | @@ -0,0 +1,143 @@ | |||
3598 | 1 | SHOW VARIABLES LIKE 'have_backup_locks'; | ||
3599 | 2 | Variable_name Value | ||
3600 | 3 | have_backup_locks YES | ||
3601 | 4 | CREATE TABLE t1 (a INT) ENGINE=InnoDB; | ||
3602 | 5 | CREATE TABLE t2 (a INT) ENGINE=MyISAM; | ||
3603 | 6 | SET @old_general_log = @@general_log; | ||
3604 | 7 | SET @old_log_output = @@log_output; | ||
3605 | 8 | TRUNCATE TABLE mysql.general_log; | ||
3606 | 9 | SET GLOBAL log_output = 'TABLE'; | ||
3607 | 10 | SET GLOBAL general_log = ON; | ||
3608 | 11 | # Check that --lock-for-backup is converted to --lock-all-tables if | ||
3609 | 12 | # --single-transaction is not specified | ||
3610 | 13 | SELECT argument FROM mysql.general_log WHERE argument != ''; | ||
3611 | 14 | argument | ||
3612 | 15 | SET GLOBAL general_log = ON | ||
3613 | 16 | root@localhost on | ||
3614 | 17 | /*!40100 SET @@SQL_MODE='' */ | ||
3615 | 18 | /*!40103 SET TIME_ZONE='+00:00' */ | ||
3616 | 19 | FLUSH TABLES | ||
3617 | 20 | FLUSH TABLES WITH READ LOCK | ||
3618 | 21 | SHOW VARIABLES LIKE 'gtid\_mode' | ||
3619 | 22 | SELECT LOGFILE_GROUP_NAME, FILE_NAME, TOTAL_EXTENTS, INITIAL_SIZE, ENGINE, EXTRA FROM INFORMATION_SCHEMA.FILES WHERE FILE_TYPE = 'UNDO LOG' AND FILE_NAME IS NOT NULL AND LOGFILE_GROUP_NAME IN (SELECT DISTINCT LOGFILE_GROUP_NAME FROM INFORMATION_SCHEMA.FILES WHERE FILE_TYPE = 'DATAFILE' AND TABLESPACE_NAME IN (SELECT DISTINCT TABLESPACE_NAME FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_SCHEMA IN ('test'))) GROUP BY LOGFILE_GROUP_NAME, FILE_NAME, ENGINE ORDER BY LOGFILE_GROUP_NAME | ||
3620 | 23 | SELECT DISTINCT TABLESPACE_NAME, FILE_NAME, LOGFILE_GROUP_NAME, EXTENT_SIZE, INITIAL_SIZE, ENGINE FROM INFORMATION_SCHEMA.FILES WHERE FILE_TYPE = 'DATAFILE' AND TABLESPACE_NAME IN (SELECT DISTINCT TABLESPACE_NAME FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_SCHEMA IN ('test')) ORDER BY TABLESPACE_NAME, LOGFILE_GROUP_NAME | ||
3621 | 24 | SHOW VARIABLES LIKE 'ndbinfo\_version' | ||
3622 | 25 | test | ||
3623 | 26 | show tables | ||
3624 | 27 | show table status like 't1' | ||
3625 | 28 | SET SQL_QUOTE_SHOW_CREATE=1 | ||
3626 | 29 | SET SESSION character_set_results = 'binary' | ||
3627 | 30 | show create table `t1` | ||
3628 | 31 | SET SESSION character_set_results = 'utf8' | ||
3629 | 32 | show fields from `t1` | ||
3630 | 33 | SELECT /*!40001 SQL_NO_CACHE */ * FROM `t1` | ||
3631 | 34 | SET SESSION character_set_results = 'binary' | ||
3632 | 35 | use `test` | ||
3633 | 36 | select @@collation_database | ||
3634 | 37 | SHOW TRIGGERS LIKE 't1' | ||
3635 | 38 | SET SESSION character_set_results = 'utf8' | ||
3636 | 39 | show table status like 't2' | ||
3637 | 40 | SET SQL_QUOTE_SHOW_CREATE=1 | ||
3638 | 41 | SET SESSION character_set_results = 'binary' | ||
3639 | 42 | show create table `t2` | ||
3640 | 43 | SET SESSION character_set_results = 'utf8' | ||
3641 | 44 | show fields from `t2` | ||
3642 | 45 | SELECT /*!40001 SQL_NO_CACHE */ * FROM `t2` | ||
3643 | 46 | SET SESSION character_set_results = 'binary' | ||
3644 | 47 | use `test` | ||
3645 | 48 | select @@collation_database | ||
3646 | 49 | SHOW TRIGGERS LIKE 't2' | ||
3647 | 50 | SET SESSION character_set_results = 'utf8' | ||
3648 | 51 | SELECT argument FROM mysql.general_log WHERE argument != '' | ||
3649 | 52 | TRUNCATE TABLE mysql.general_log; | ||
3650 | 53 | # Check that --lock-for-backup --single-transaction uses LOCK TABLES FOR | ||
3651 | 54 | # BACKUP | ||
3652 | 55 | SELECT argument FROM mysql.general_log WHERE argument != ''; | ||
3653 | 56 | argument | ||
3654 | 57 | root@localhost on | ||
3655 | 58 | /*!40100 SET @@SQL_MODE='' */ | ||
3656 | 59 | /*!40103 SET TIME_ZONE='+00:00' */ | ||
3657 | 60 | SHOW VARIABLES LIKE 'have_backup_locks' | ||
3658 | 61 | LOCK TABLES FOR BACKUP | ||
3659 | 62 | SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ | ||
3660 | 63 | START TRANSACTION /*!40100 WITH CONSISTENT SNAPSHOT */ | ||
3661 | 64 | SHOW VARIABLES LIKE 'gtid\_mode' | ||
3662 | 65 | SELECT LOGFILE_GROUP_NAME, FILE_NAME, TOTAL_EXTENTS, INITIAL_SIZE, ENGINE, EXTRA FROM INFORMATION_SCHEMA.FILES WHERE FILE_TYPE = 'UNDO LOG' AND FILE_NAME IS NOT NULL AND LOGFILE_GROUP_NAME IN (SELECT DISTINCT LOGFILE_GROUP_NAME FROM INFORMATION_SCHEMA.FILES WHERE FILE_TYPE = 'DATAFILE' AND TABLESPACE_NAME IN (SELECT DISTINCT TABLESPACE_NAME FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_SCHEMA IN ('test'))) GROUP BY LOGFILE_GROUP_NAME, FILE_NAME, ENGINE ORDER BY LOGFILE_GROUP_NAME | ||
3663 | 66 | SELECT DISTINCT TABLESPACE_NAME, FILE_NAME, LOGFILE_GROUP_NAME, EXTENT_SIZE, INITIAL_SIZE, ENGINE FROM INFORMATION_SCHEMA.FILES WHERE FILE_TYPE = 'DATAFILE' AND TABLESPACE_NAME IN (SELECT DISTINCT TABLESPACE_NAME FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_SCHEMA IN ('test')) ORDER BY TABLESPACE_NAME, LOGFILE_GROUP_NAME | ||
3664 | 67 | SHOW VARIABLES LIKE 'ndbinfo\_version' | ||
3665 | 68 | test | ||
3666 | 69 | show tables | ||
3667 | 70 | show table status like 't1' | ||
3668 | 71 | SET SQL_QUOTE_SHOW_CREATE=1 | ||
3669 | 72 | SET SESSION character_set_results = 'binary' | ||
3670 | 73 | show create table `t1` | ||
3671 | 74 | SET SESSION character_set_results = 'utf8' | ||
3672 | 75 | show fields from `t1` | ||
3673 | 76 | SELECT /*!40001 SQL_NO_CACHE */ * FROM `t1` | ||
3674 | 77 | SET SESSION character_set_results = 'binary' | ||
3675 | 78 | use `test` | ||
3676 | 79 | select @@collation_database | ||
3677 | 80 | SHOW TRIGGERS LIKE 't1' | ||
3678 | 81 | SET SESSION character_set_results = 'utf8' | ||
3679 | 82 | show table status like 't2' | ||
3680 | 83 | SET SQL_QUOTE_SHOW_CREATE=1 | ||
3681 | 84 | SET SESSION character_set_results = 'binary' | ||
3682 | 85 | show create table `t2` | ||
3683 | 86 | SET SESSION character_set_results = 'utf8' | ||
3684 | 87 | show fields from `t2` | ||
3685 | 88 | SELECT /*!40001 SQL_NO_CACHE */ * FROM `t2` | ||
3686 | 89 | SET SESSION character_set_results = 'binary' | ||
3687 | 90 | use `test` | ||
3688 | 91 | select @@collation_database | ||
3689 | 92 | SHOW TRIGGERS LIKE 't2' | ||
3690 | 93 | SET SESSION character_set_results = 'utf8' | ||
3691 | 94 | SELECT argument FROM mysql.general_log WHERE argument != '' | ||
3692 | 95 | TRUNCATE TABLE mysql.general_log; | ||
3693 | 96 | # Check that --master-data disables --lock-for-backup | ||
3694 | 97 | SELECT argument FROM mysql.general_log WHERE argument != ''; | ||
3695 | 98 | argument | ||
3696 | 99 | root@localhost on | ||
3697 | 100 | /*!40100 SET @@SQL_MODE='' */ | ||
3698 | 101 | /*!40103 SET TIME_ZONE='+00:00' */ | ||
3699 | 102 | SHOW VARIABLES LIKE 'have_backup_locks' | ||
3700 | 103 | FLUSH /*!40101 LOCAL */ TABLES | ||
3701 | 104 | FLUSH TABLES WITH READ LOCK | ||
3702 | 105 | SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ | ||
3703 | 106 | START TRANSACTION /*!40100 WITH CONSISTENT SNAPSHOT */ | ||
3704 | 107 | SHOW VARIABLES LIKE 'gtid\_mode' | ||
3705 | 108 | SHOW MASTER STATUS | ||
3706 | 109 | UNLOCK TABLES | ||
3707 | 110 | SELECT LOGFILE_GROUP_NAME, FILE_NAME, TOTAL_EXTENTS, INITIAL_SIZE, ENGINE, EXTRA FROM INFORMATION_SCHEMA.FILES WHERE FILE_TYPE = 'UNDO LOG' AND FILE_NAME IS NOT NULL AND LOGFILE_GROUP_NAME IN (SELECT DISTINCT LOGFILE_GROUP_NAME FROM INFORMATION_SCHEMA.FILES WHERE FILE_TYPE = 'DATAFILE' AND TABLESPACE_NAME IN (SELECT DISTINCT TABLESPACE_NAME FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_SCHEMA IN ('test'))) GROUP BY LOGFILE_GROUP_NAME, FILE_NAME, ENGINE ORDER BY LOGFILE_GROUP_NAME | ||
3708 | 111 | SELECT DISTINCT TABLESPACE_NAME, FILE_NAME, LOGFILE_GROUP_NAME, EXTENT_SIZE, INITIAL_SIZE, ENGINE FROM INFORMATION_SCHEMA.FILES WHERE FILE_TYPE = 'DATAFILE' AND TABLESPACE_NAME IN (SELECT DISTINCT TABLESPACE_NAME FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_SCHEMA IN ('test')) ORDER BY TABLESPACE_NAME, LOGFILE_GROUP_NAME | ||
3709 | 112 | SHOW VARIABLES LIKE 'ndbinfo\_version' | ||
3710 | 113 | test | ||
3711 | 114 | show tables | ||
3712 | 115 | show table status like 't1' | ||
3713 | 116 | SET SQL_QUOTE_SHOW_CREATE=1 | ||
3714 | 117 | SET SESSION character_set_results = 'binary' | ||
3715 | 118 | show create table `t1` | ||
3716 | 119 | SET SESSION character_set_results = 'utf8' | ||
3717 | 120 | show fields from `t1` | ||
3718 | 121 | SELECT /*!40001 SQL_NO_CACHE */ * FROM `t1` | ||
3719 | 122 | SET SESSION character_set_results = 'binary' | ||
3720 | 123 | use `test` | ||
3721 | 124 | select @@collation_database | ||
3722 | 125 | SHOW TRIGGERS LIKE 't1' | ||
3723 | 126 | SET SESSION character_set_results = 'utf8' | ||
3724 | 127 | show table status like 't2' | ||
3725 | 128 | SET SQL_QUOTE_SHOW_CREATE=1 | ||
3726 | 129 | SET SESSION character_set_results = 'binary' | ||
3727 | 130 | show create table `t2` | ||
3728 | 131 | SET SESSION character_set_results = 'utf8' | ||
3729 | 132 | show fields from `t2` | ||
3730 | 133 | SELECT /*!40001 SQL_NO_CACHE */ * FROM `t2` | ||
3731 | 134 | SET SESSION character_set_results = 'binary' | ||
3732 | 135 | use `test` | ||
3733 | 136 | select @@collation_database | ||
3734 | 137 | SHOW TRIGGERS LIKE 't2' | ||
3735 | 138 | SET SESSION character_set_results = 'utf8' | ||
3736 | 139 | SELECT argument FROM mysql.general_log WHERE argument != '' | ||
3737 | 140 | TRUNCATE TABLE mysql.general_log; | ||
3738 | 141 | SET GLOBAL log_output = @old_log_output; | ||
3739 | 142 | SET GLOBAL general_log = @old_general_log; | ||
3740 | 143 | DROP TABLE t1, t2; | ||
3741 | 0 | 144 | ||
3742 | === modified file 'mysql-test/suite/funcs_1/r/storedproc.result' | |||
3743 | --- mysql-test/suite/funcs_1/r/storedproc.result 2013-05-10 09:39:17 +0000 | |||
3744 | +++ mysql-test/suite/funcs_1/r/storedproc.result 2014-02-20 11:26:00 +0000 | |||
3745 | @@ -5522,7 +5522,9 @@ | |||
3746 | 5522 | unlock:BEGIN | 5522 | unlock:BEGIN |
3747 | 5523 | SELECT @x; | 5523 | SELECT @x; |
3748 | 5524 | END// | 5524 | END// |
3750 | 5525 | ERROR 0A000: UNLOCK is not allowed in stored procedures | 5525 | ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':BEGIN |
3751 | 5526 | SELECT @x; | ||
3752 | 5527 | END' at line 2 | ||
3753 | 5526 | DROP PROCEDURE IF EXISTS sp1; | 5528 | DROP PROCEDURE IF EXISTS sp1; |
3754 | 5527 | CREATE PROCEDURE sp1() | 5529 | CREATE PROCEDURE sp1() |
3755 | 5528 | unsigned:BEGIN | 5530 | unsigned:BEGIN |
3756 | 5529 | 5531 | ||
3757 | === modified file 'mysql-test/suite/funcs_1/t/storedproc.test' | |||
3758 | --- mysql-test/suite/funcs_1/t/storedproc.test 2011-12-09 21:08:37 +0000 | |||
3759 | +++ mysql-test/suite/funcs_1/t/storedproc.test 2014-02-20 11:26:00 +0000 | |||
3760 | @@ -5226,7 +5226,7 @@ | |||
3761 | 5226 | DROP PROCEDURE IF EXISTS sp1; | 5226 | DROP PROCEDURE IF EXISTS sp1; |
3762 | 5227 | 5227 | ||
3763 | 5228 | delimiter //; | 5228 | delimiter //; |
3765 | 5229 | --error ER_SP_BADSTATEMENT | 5229 | --error ER_PARSE_ERROR |
3766 | 5230 | CREATE PROCEDURE sp1() | 5230 | CREATE PROCEDURE sp1() |
3767 | 5231 | unlock:BEGIN | 5231 | unlock:BEGIN |
3768 | 5232 | SELECT @x; | 5232 | SELECT @x; |
3769 | 5233 | 5233 | ||
3770 | === added file 'mysql-test/suite/rpl/r/rpl_backup_locks.result' | |||
3771 | --- mysql-test/suite/rpl/r/rpl_backup_locks.result 1970-01-01 00:00:00 +0000 | |||
3772 | +++ mysql-test/suite/rpl/r/rpl_backup_locks.result 2014-02-20 11:26:00 +0000 | |||
3773 | @@ -0,0 +1,34 @@ | |||
3774 | 1 | include/master-slave.inc | ||
3775 | 2 | Warnings: | ||
3776 | 3 | Note #### Sending passwords in plain text without SSL/TLS is extremely insecure. | ||
3777 | 4 | Note #### Storing MySQL user name or password information in the master info repository is not secure and is therefore not recommended. Please consider using the USER and PASSWORD connection options for START SLAVE; see the 'START SLAVE Syntax' in the MySQL Manual for more information. | ||
3778 | 5 | [connection master] | ||
3779 | 6 | CREATE TABLE t_innodb (a INT) ENGINE=InnoDB; | ||
3780 | 7 | CREATE TABLE t_myisam (a INT) ENGINE=MyISAM; | ||
3781 | 8 | STOP SLAVE; | ||
3782 | 9 | include/wait_for_slave_to_stop.inc | ||
3783 | 10 | # connection master | ||
3784 | 11 | INSERT INTO t_innodb VALUES (0); | ||
3785 | 12 | # connection slave | ||
3786 | 13 | LOCK TABLES FOR BACKUP; | ||
3787 | 14 | LOCK BINLOG FOR BACKUP; | ||
3788 | 15 | START SLAVE; | ||
3789 | 16 | include/wait_for_slave_to_start.inc | ||
3790 | 17 | include/check_slave_param.inc [Exec_Master_Log_Pos] | ||
3791 | 18 | UNLOCK BINLOG; | ||
3792 | 19 | UNLOCK TABLES; | ||
3793 | 20 | # connection master | ||
3794 | 21 | # connection slave | ||
3795 | 22 | STOP SLAVE; | ||
3796 | 23 | # connection master | ||
3797 | 24 | INSERT INTO t_myisam VALUES (0); | ||
3798 | 25 | # connection slave | ||
3799 | 26 | LOCK TABLES FOR BACKUP; | ||
3800 | 27 | START SLAVE; | ||
3801 | 28 | LOCK BINLOG FOR BACKUP; | ||
3802 | 29 | UNLOCK TABLES; | ||
3803 | 30 | include/check_slave_param.inc [Exec_Master_Log_Pos] | ||
3804 | 31 | UNLOCK BINLOG; | ||
3805 | 32 | # connection master | ||
3806 | 33 | DROP TABLE t_innodb, t_myisam; | ||
3807 | 34 | include/rpl_end.inc | ||
3808 | 0 | 35 | ||
3809 | === added file 'mysql-test/suite/rpl/t/rpl_backup_locks.test' | |||
3810 | --- mysql-test/suite/rpl/t/rpl_backup_locks.test 1970-01-01 00:00:00 +0000 | |||
3811 | +++ mysql-test/suite/rpl/t/rpl_backup_locks.test 2014-02-20 11:26:00 +0000 | |||
3812 | @@ -0,0 +1,95 @@ | |||
3813 | 1 | ######################################################################## | ||
3814 | 2 | # Replication-related tests for backup locks | ||
3815 | 3 | ######################################################################## | ||
3816 | 4 | |||
3817 | 5 | --source include/have_innodb.inc | ||
3818 | 6 | --source include/master-slave.inc | ||
3819 | 7 | |||
3820 | 8 | CREATE TABLE t_innodb (a INT) ENGINE=InnoDB; | ||
3821 | 9 | CREATE TABLE t_myisam (a INT) ENGINE=MyISAM; | ||
3822 | 10 | |||
3823 | 11 | sync_slave_with_master; | ||
3824 | 12 | |||
3825 | 13 | STOP SLAVE; | ||
3826 | 14 | --source include/wait_for_slave_to_stop.inc | ||
3827 | 15 | |||
3828 | 16 | --connection master | ||
3829 | 17 | --echo # connection master | ||
3830 | 18 | |||
3831 | 19 | INSERT INTO t_innodb VALUES (0); | ||
3832 | 20 | |||
3833 | 21 | --connection slave | ||
3834 | 22 | --echo # connection slave | ||
3835 | 23 | |||
3836 | 24 | --let $master_log_pos= query_get_value(SHOW SLAVE STATUS, Exec_Master_Log_Pos, 1) | ||
3837 | 25 | |||
3838 | 26 | LOCK TABLES FOR BACKUP; | ||
3839 | 27 | LOCK BINLOG FOR BACKUP; | ||
3840 | 28 | |||
3841 | 29 | START SLAVE; | ||
3842 | 30 | --source include/wait_for_slave_to_start.inc | ||
3843 | 31 | |||
3844 | 32 | let $wait_condition= | ||
3845 | 33 | SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST | ||
3846 | 34 | WHERE STATE = "Waiting for binlog lock" AND | ||
3847 | 35 | (INFO = "INSERT INTO t_innodb VALUES (0)" OR INFO IS NULL); | ||
3848 | 36 | --source include/wait_condition.inc | ||
3849 | 37 | |||
3850 | 38 | --let $slave_param= Exec_Master_Log_Pos | ||
3851 | 39 | --let $slave_param_value= $master_log_pos | ||
3852 | 40 | --source include/check_slave_param.inc | ||
3853 | 41 | |||
3854 | 42 | UNLOCK BINLOG; | ||
3855 | 43 | UNLOCK TABLES; | ||
3856 | 44 | |||
3857 | 45 | --connection master | ||
3858 | 46 | --echo # connection master | ||
3859 | 47 | sync_slave_with_master; | ||
3860 | 48 | |||
3861 | 49 | |||
3862 | 50 | --connection slave | ||
3863 | 51 | --echo # connection slave | ||
3864 | 52 | STOP SLAVE; | ||
3865 | 53 | |||
3866 | 54 | --connection master | ||
3867 | 55 | --echo # connection master | ||
3868 | 56 | |||
3869 | 57 | INSERT INTO t_myisam VALUES (0); | ||
3870 | 58 | |||
3871 | 59 | --connection slave | ||
3872 | 60 | --echo # connection slave | ||
3873 | 61 | |||
3874 | 62 | --let $master_log_pos= query_get_value(SHOW SLAVE STATUS, Exec_Master_Log_Pos, 1) | ||
3875 | 63 | |||
3876 | 64 | LOCK TABLES FOR BACKUP; | ||
3877 | 65 | |||
3878 | 66 | START SLAVE; | ||
3879 | 67 | |||
3880 | 68 | let $wait_condition= | ||
3881 | 69 | SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST | ||
3882 | 70 | WHERE STATE = "Waiting for backup lock" AND | ||
3883 | 71 | (INFO = "INSERT INTO t_myisam VALUES (0)" OR INFO IS NULL); | ||
3884 | 72 | --source include/wait_condition.inc | ||
3885 | 73 | |||
3886 | 74 | LOCK BINLOG FOR BACKUP; | ||
3887 | 75 | UNLOCK TABLES; | ||
3888 | 76 | |||
3889 | 77 | let $wait_condition= | ||
3890 | 78 | SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST | ||
3891 | 79 | WHERE STATE = "Waiting for binlog lock" AND | ||
3892 | 80 | (INFO = "INSERT INTO t_myisam VALUES (0)" OR INFO IS NULL); | ||
3893 | 81 | --source include/wait_condition.inc | ||
3894 | 82 | |||
3895 | 83 | --let $slave_param= Exec_Master_Log_Pos | ||
3896 | 84 | --let $slave_param_value= $master_log_pos | ||
3897 | 85 | --source include/check_slave_param.inc | ||
3898 | 86 | |||
3899 | 87 | UNLOCK BINLOG; | ||
3900 | 88 | |||
3901 | 89 | --connection master | ||
3902 | 90 | --echo # connection master | ||
3903 | 91 | |||
3904 | 92 | DROP TABLE t_innodb, t_myisam; | ||
3905 | 93 | sync_slave_with_master; | ||
3906 | 94 | |||
3907 | 95 | --source include/rpl_end.inc | ||
3908 | 0 | 96 | ||
3909 | === added file 'mysql-test/suite/sys_vars/r/have_backup_locks_basic.result' | |||
3910 | --- mysql-test/suite/sys_vars/r/have_backup_locks_basic.result 1970-01-01 00:00:00 +0000 | |||
3911 | +++ mysql-test/suite/sys_vars/r/have_backup_locks_basic.result 2014-02-20 11:26:00 +0000 | |||
3912 | @@ -0,0 +1,11 @@ | |||
3913 | 1 | SELECT @@GLOBAL.have_backup_locks="YES"; | ||
3914 | 2 | @@GLOBAL.have_backup_locks="YES" | ||
3915 | 3 | 1 | ||
3916 | 4 | SELECT @@SESSION.have_backup_locks; | ||
3917 | 5 | ERROR HY000: Variable 'have_backup_locks' is a GLOBAL variable | ||
3918 | 6 | SHOW GLOBAL VARIABLES LIKE 'have_backup_locks'; | ||
3919 | 7 | Variable_name Value | ||
3920 | 8 | have_backup_locks YES | ||
3921 | 9 | SHOW SESSION VARIABLES LIKE 'have_backup_locks'; | ||
3922 | 10 | Variable_name Value | ||
3923 | 11 | have_backup_locks YES | ||
3924 | 0 | 12 | ||
3925 | === added file 'mysql-test/suite/sys_vars/t/have_backup_locks_basic.test' | |||
3926 | --- mysql-test/suite/sys_vars/t/have_backup_locks_basic.test 1970-01-01 00:00:00 +0000 | |||
3927 | +++ mysql-test/suite/sys_vars/t/have_backup_locks_basic.test 2014-02-20 11:26:00 +0000 | |||
3928 | @@ -0,0 +1,7 @@ | |||
3929 | 1 | SELECT @@GLOBAL.have_backup_locks="YES"; | ||
3930 | 2 | --error ER_INCORRECT_GLOBAL_LOCAL_VAR | ||
3931 | 3 | SELECT @@SESSION.have_backup_locks; | ||
3932 | 4 | |||
3933 | 5 | SHOW GLOBAL VARIABLES LIKE 'have_backup_locks'; | ||
3934 | 6 | |||
3935 | 7 | SHOW SESSION VARIABLES LIKE 'have_backup_locks'; | ||
3936 | 0 | 8 | ||
3937 | === added file 'mysql-test/t/backup_locks.test' | |||
3938 | --- mysql-test/t/backup_locks.test 1970-01-01 00:00:00 +0000 | |||
3939 | +++ mysql-test/t/backup_locks.test 2014-02-20 11:26:00 +0000 | |||
3940 | @@ -0,0 +1,1091 @@ | |||
3941 | 1 | ######################################################################## | ||
3942 | 2 | # Tests for LOCK TABLES FOR BACKUP and LOCK BINLOG FOR BACKUP | ||
3943 | 3 | ######################################################################## | ||
3944 | 4 | |||
3945 | 5 | --source include/have_innodb.inc | ||
3946 | 6 | --source include/not_embedded.inc | ||
3947 | 7 | --source include/have_archive.inc | ||
3948 | 8 | --source include/have_csv.inc | ||
3949 | 9 | --source include/have_blackhole.inc | ||
3950 | 10 | |||
3951 | 11 | SHOW VARIABLES LIKE 'have_backup_locks'; | ||
3952 | 12 | |||
3953 | 13 | --echo #----------------------------------------------------------------------- | ||
3954 | 14 | --echo # Setup | ||
3955 | 15 | --echo #----------------------------------------------------------------------- | ||
3956 | 16 | |||
3957 | 17 | # Save the initial number of concurrent sessions. | ||
3958 | 18 | --source include/count_sessions.inc | ||
3959 | 19 | |||
3960 | 20 | CREATE TABLE t_innodb(a INT NOT NULL, KEY (a)) ENGINE=InnoDB; | ||
3961 | 21 | CREATE TABLE t_myisam(a INT NOT NULL, KEY (a)) ENGINE=MyISAM; | ||
3962 | 22 | CREATE TABLE t_memory(a INT NOT NULL, KEY (a)) ENGINE=MEMORY; | ||
3963 | 23 | CREATE TABLE t_csv(a INT NOT NULL) ENGINE=CSV; | ||
3964 | 24 | CREATE TABLE t_blackhole(a INT NOT NULL, KEY (a)) ENGINE=BLACKHOLE; | ||
3965 | 25 | CREATE TABLE t_archive(a INT NOT NULL) ENGINE=ARCHIVE; | ||
3966 | 26 | |||
3967 | 27 | CREATE VIEW v_innodb AS SELECT * FROM t_innodb; | ||
3968 | 28 | CREATE VIEW v_myisam AS SELECT * FROM t_myisam; | ||
3969 | 29 | CREATE VIEW v_memory AS SELECT * FROM t_memory; | ||
3970 | 30 | CREATE VIEW v_csv AS SELECT * FROM t_csv; | ||
3971 | 31 | CREATE VIEW v_blackhole AS SELECT * FROM t_blackhole; | ||
3972 | 32 | CREATE VIEW v_archive AS SELECT * FROM t_archive; | ||
3973 | 33 | |||
3974 | 34 | --echo #----------------------------------------------------------------------- | ||
3975 | 35 | --echo # Basic syntax checks | ||
3976 | 36 | --echo #----------------------------------------------------------------------- | ||
3977 | 37 | |||
3978 | 38 | --error ER_PARSE_ERROR | ||
3979 | 39 | LOCK TABLES t_innodb FOR BACKUP; | ||
3980 | 40 | --error ER_PARSE_ERROR | ||
3981 | 41 | LOCK TABLES t_innodb READ FOR BACKUP; | ||
3982 | 42 | --error ER_PARSE_ERROR | ||
3983 | 43 | LOCK TABLES t_innodb FOR BACKUP READ; | ||
3984 | 44 | --error ER_PARSE_ERROR | ||
3985 | 45 | LOCK BINLOG t_innodb FOR BACKUP; | ||
3986 | 46 | --error ER_PARSE_ERROR | ||
3987 | 47 | LOCK BINLOG t_innodb READ FOR BACKUP; | ||
3988 | 48 | --error ER_PARSE_ERROR | ||
3989 | 49 | LOCK BINLOG t_innodb FOR BACKUP READ; | ||
3990 | 50 | |||
3991 | 51 | LOCK TABLES FOR BACKUP; | ||
3992 | 52 | UNLOCK TABLES; | ||
3993 | 53 | |||
3994 | 54 | LOCK BINLOG FOR BACKUP; | ||
3995 | 55 | UNLOCK BINLOG; | ||
3996 | 56 | |||
3997 | 57 | --echo #----------------------------------------------------------------------- | ||
3998 | 58 | --echo # No backup locks are allowed in stored routines | ||
3999 | 59 | --echo #----------------------------------------------------------------------- | ||
4000 | 60 | |||
4001 | 61 | delimiter |; | ||
4002 | 62 | --error ER_SP_BADSTATEMENT | ||
4003 | 63 | CREATE PROCEDURE p1() | ||
4004 | 64 | BEGIN | ||
4005 | 65 | LOCK TABLES FOR BACKUP; | ||
4006 | 66 | END| | ||
4007 | 67 | |||
4008 | 68 | --error ER_SP_BADSTATEMENT | ||
4009 | 69 | CREATE PROCEDURE p2() | ||
4010 | 70 | BEGIN | ||
4011 | 71 | LOCK BINLOG FOR BACKUP; | ||
4012 | 72 | END| | ||
4013 | 73 | |||
4014 | 74 | --error ER_SP_BADSTATEMENT | ||
4015 | 75 | CREATE FUNCTION f1() RETURNS INT DETERMINISTIC | ||
4016 | 76 | BEGIN | ||
4017 | 77 | LOCK TABLES FOR BACKUP; | ||
4018 | 78 | RETURN 1; | ||
4019 | 79 | END| | ||
4020 | 80 | |||
4021 | 81 | --error ER_SP_BADSTATEMENT | ||
4022 | 82 | CREATE FUNCTION f2() RETURNS INT DETERMINISTIC | ||
4023 | 83 | BEGIN | ||
4024 | 84 | LOCK BINLOG FOR BACKUP; | ||
4025 | 85 | RETURN 1; | ||
4026 | 86 | END| | ||
4027 | 87 | |||
4028 | 88 | delimiter ;| | ||
4029 | 89 | |||
4030 | 90 | --echo #----------------------------------------------------------------------- | ||
4031 | 91 | --echo # Single-threaded tests | ||
4032 | 92 | --echo #----------------------------------------------------------------------- | ||
4033 | 93 | |||
4034 | 94 | SET SESSION lock_wait_timeout=1; | ||
4035 | 95 | |||
4036 | 96 | FLUSH STATUS; | ||
4037 | 97 | |||
4038 | 98 | # | ||
4039 | 99 | # Multiple TFB locks in the same connection | ||
4040 | 100 | # | ||
4041 | 101 | LOCK TABLES FOR BACKUP; | ||
4042 | 102 | LOCK TABLES FOR BACKUP; | ||
4043 | 103 | SHOW STATUS LIKE 'Com_lock_tables_for_backup'; | ||
4044 | 104 | |||
4045 | 105 | UNLOCK TABLES; | ||
4046 | 106 | SHOW STATUS LIKE 'Com_unlock_tables'; | ||
4047 | 107 | |||
4048 | 108 | # | ||
4049 | 109 | # Multiple BFB locks in the same connection | ||
4050 | 110 | # | ||
4051 | 111 | LOCK BINLOG FOR BACKUP; | ||
4052 | 112 | LOCK BINLOG FOR BACKUP; | ||
4053 | 113 | |||
4054 | 114 | SHOW STATUS LIKE 'Com_lock_binlog_for_backup'; | ||
4055 | 115 | |||
4056 | 116 | UNLOCK BINLOG; | ||
4057 | 117 | SHOW STATUS LIKE 'Com_unlock_binlog'; | ||
4058 | 118 | |||
4059 | 119 | # | ||
4060 | 120 | # LTFB + DDL / DML in the same connection | ||
4061 | 121 | # | ||
4062 | 122 | |||
4063 | 123 | LOCK TABLES FOR BACKUP; | ||
4064 | 124 | |||
4065 | 125 | DELETE FROM t_innodb; | ||
4066 | 126 | INSERT INTO t_innodb VALUES(0); | ||
4067 | 127 | UPDATE t_innodb SET a = 1; | ||
4068 | 128 | REPLACE INTO t_innodb VALUES(1); | ||
4069 | 129 | SELECT * FROM t_innodb; | ||
4070 | 130 | HANDLER t_innodb OPEN; | ||
4071 | 131 | HANDLER t_innodb READ a FIRST; | ||
4072 | 132 | HANDLER t_innodb CLOSE; | ||
4073 | 133 | |||
4074 | 134 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4075 | 135 | DELETE FROM t_myisam; | ||
4076 | 136 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4077 | 137 | INSERT INTO t_myisam VALUES(0); | ||
4078 | 138 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4079 | 139 | INSERT DELAYED INTO t_myisam VALUES(0); | ||
4080 | 140 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4081 | 141 | UPDATE t_myisam SET a = 1; | ||
4082 | 142 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4083 | 143 | REPLACE INTO t_myisam VALUES(1); | ||
4084 | 144 | SELECT * FROM t_myisam; | ||
4085 | 145 | HANDLER t_myisam OPEN; | ||
4086 | 146 | HANDLER t_myisam READ a FIRST; | ||
4087 | 147 | HANDLER t_myisam CLOSE; | ||
4088 | 148 | |||
4089 | 149 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4090 | 150 | DELETE FROM t_memory; | ||
4091 | 151 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4092 | 152 | INSERT INTO t_memory VALUES(0); | ||
4093 | 153 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4094 | 154 | INSERT DELAYED INTO t_memory VALUES(0); | ||
4095 | 155 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4096 | 156 | UPDATE t_memory SET a = 1; | ||
4097 | 157 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4098 | 158 | REPLACE INTO t_memory VALUES(1); | ||
4099 | 159 | SELECT * FROM t_memory; | ||
4100 | 160 | |||
4101 | 161 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4102 | 162 | DELETE FROM t_archive; | ||
4103 | 163 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4104 | 164 | INSERT INTO t_archive VALUES(0); | ||
4105 | 165 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4106 | 166 | INSERT DELAYED INTO t_archive VALUES(0); | ||
4107 | 167 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4108 | 168 | UPDATE t_archive SET a = 1; | ||
4109 | 169 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4110 | 170 | REPLACE INTO t_archive VALUES(1); | ||
4111 | 171 | SELECT * FROM t_archive; | ||
4112 | 172 | |||
4113 | 173 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4114 | 174 | DELETE FROM t_csv; | ||
4115 | 175 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4116 | 176 | INSERT INTO t_csv VALUES(0); | ||
4117 | 177 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4118 | 178 | UPDATE t_csv SET a = 1; | ||
4119 | 179 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4120 | 180 | REPLACE INTO t_csv VALUES(1); | ||
4121 | 181 | SELECT * FROM t_csv; | ||
4122 | 182 | |||
4123 | 183 | DELETE FROM t_blackhole; | ||
4124 | 184 | INSERT INTO t_blackhole VALUES(0); | ||
4125 | 185 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4126 | 186 | INSERT DELAYED INTO t_blackhole VALUES(0); | ||
4127 | 187 | UPDATE t_blackhole SET a = 1; | ||
4128 | 188 | REPLACE INTO t_blackhole VALUES(1); | ||
4129 | 189 | SELECT * FROM t_blackhole; | ||
4130 | 190 | |||
4131 | 191 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4132 | 192 | CREATE TABLE tt_innodb(a INT NOT NULL) ENGINE=InnoDB; | ||
4133 | 193 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4134 | 194 | CREATE TABLE tt_myisam(a INT NOT NULL) ENGINE=MyISAM; | ||
4135 | 195 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4136 | 196 | CREATE TABLE tt_memory(a INT NOT NULL) ENGINE=MEMORY; | ||
4137 | 197 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4138 | 198 | CREATE TABLE tt_csv(a INT NOT NULL) ENGINE=CSV; | ||
4139 | 199 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4140 | 200 | CREATE TABLE tt_blackhole(a INT NOT NULL) ENGINE=BLACKHOLE; | ||
4141 | 201 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4142 | 202 | CREATE TABLE tt_archive(a INT NOT NULL) ENGINE=ARCHIVE; | ||
4143 | 203 | |||
4144 | 204 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4145 | 205 | DROP TABLE t_innodb; | ||
4146 | 206 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4147 | 207 | DROP TABLE t_myisam; | ||
4148 | 208 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4149 | 209 | DROP TABLE t_memory; | ||
4150 | 210 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4151 | 211 | DROP TABLE t_csv; | ||
4152 | 212 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4153 | 213 | DROP TABLE t_blackhole; | ||
4154 | 214 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4155 | 215 | DROP TABLE t_archive; | ||
4156 | 216 | |||
4157 | 217 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4158 | 218 | DROP TABLE non_existing; | ||
4159 | 219 | |||
4160 | 220 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4161 | 221 | TRUNCATE TABLE t_innodb; | ||
4162 | 222 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4163 | 223 | TRUNCATE TABLE t_myisam; | ||
4164 | 224 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4165 | 225 | TRUNCATE TABLE t_memory; | ||
4166 | 226 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4167 | 227 | TRUNCATE TABLE t_csv; | ||
4168 | 228 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4169 | 229 | TRUNCATE TABLE t_blackhole; | ||
4170 | 230 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4171 | 231 | TRUNCATE TABLE t_archive; | ||
4172 | 232 | |||
4173 | 233 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4174 | 234 | RENAME TABLE t_innodb TO tmp; | ||
4175 | 235 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4176 | 236 | RENAME TABLE t_myisam TO tmp; | ||
4177 | 237 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4178 | 238 | RENAME TABLE t_memory TO tmp; | ||
4179 | 239 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4180 | 240 | RENAME TABLE t_csv TO tmp; | ||
4181 | 241 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4182 | 242 | RENAME TABLE t_blackhole TO tmp; | ||
4183 | 243 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4184 | 244 | RENAME TABLE t_archive TO tmp; | ||
4185 | 245 | |||
4186 | 246 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4187 | 247 | ALTER TABLE t_innodb ADD COLUMN b CHAR(10); | ||
4188 | 248 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4189 | 249 | ALTER TABLE t_myisam ADD COLUMN b CHAR(10); | ||
4190 | 250 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4191 | 251 | ALTER TABLE t_memory ADD COLUMN b CHAR(10); | ||
4192 | 252 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4193 | 253 | ALTER TABLE t_csv ADD COLUMN b CHAR(10); | ||
4194 | 254 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4195 | 255 | ALTER TABLE t_blackhole ADD COLUMN b CHAR(10); | ||
4196 | 256 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4197 | 257 | ALTER TABLE t_archive ADD COLUMN b CHAR(10); | ||
4198 | 258 | |||
4199 | 259 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4200 | 260 | ALTER TABLE t_innodb ADD KEY (a); | ||
4201 | 261 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4202 | 262 | ALTER TABLE t_myisam ADD KEY (a); | ||
4203 | 263 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4204 | 264 | ALTER TABLE t_memory ADD KEY (a); | ||
4205 | 265 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4206 | 266 | ALTER TABLE t_csv ADD KEY (a); | ||
4207 | 267 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4208 | 268 | ALTER TABLE t_blackhole ADD KEY (a); | ||
4209 | 269 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4210 | 270 | ALTER TABLE t_archive ADD KEY (a); | ||
4211 | 271 | |||
4212 | 272 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4213 | 273 | DROP DATABASE test; | ||
4214 | 274 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4215 | 275 | CREATE DATABASE test1; | ||
4216 | 276 | |||
4217 | 277 | delimiter |; | ||
4218 | 278 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4219 | 279 | CREATE PROCEDURE p1() | ||
4220 | 280 | BEGIN | ||
4221 | 281 | SELECT 1; | ||
4222 | 282 | END| | ||
4223 | 283 | |||
4224 | 284 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4225 | 285 | CREATE FUNCTION f1() RETURNS INT DETERMINISTIC | ||
4226 | 286 | BEGIN | ||
4227 | 287 | RETURN 1; | ||
4228 | 288 | END| | ||
4229 | 289 | |||
4230 | 290 | delimiter ;| | ||
4231 | 291 | |||
4232 | 292 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4233 | 293 | CREATE VIEW v1 AS SELECT * FROM t_innodb; | ||
4234 | 294 | |||
4235 | 295 | INSERT INTO v_innodb VALUES(1); | ||
4236 | 296 | INSERT INTO v_blackhole VALUES(1); | ||
4237 | 297 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4238 | 298 | INSERT INTO v_myisam VALUES(1); | ||
4239 | 299 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4240 | 300 | INSERT INTO v_csv VALUES(1); | ||
4241 | 301 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4242 | 302 | INSERT INTO v_memory VALUES(1); | ||
4243 | 303 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4244 | 304 | INSERT INTO v_archive VALUES(1); | ||
4245 | 305 | |||
4246 | 306 | UNLOCK TABLES; | ||
4247 | 307 | |||
4248 | 308 | # | ||
4249 | 309 | # LBFB + DML/DDL in the same connection (and binlog disabled) | ||
4250 | 310 | # | ||
4251 | 311 | |||
4252 | 312 | LOCK BINLOG FOR BACKUP; | ||
4253 | 313 | |||
4254 | 314 | DELETE FROM t_innodb; | ||
4255 | 315 | INSERT INTO t_innodb VALUES(0); | ||
4256 | 316 | UPDATE t_innodb SET a = 1; | ||
4257 | 317 | REPLACE INTO t_innodb VALUES(1); | ||
4258 | 318 | SELECT * from t_innodb; | ||
4259 | 319 | HANDLER t_innodb OPEN; | ||
4260 | 320 | HANDLER t_innodb READ a FIRST; | ||
4261 | 321 | HANDLER t_innodb CLOSE; | ||
4262 | 322 | |||
4263 | 323 | DELETE FROM t_myisam; | ||
4264 | 324 | INSERT INTO t_myisam VALUES(0); | ||
4265 | 325 | UPDATE t_myisam SET a = 1; | ||
4266 | 326 | REPLACE INTO t_myisam VALUES(1); | ||
4267 | 327 | SELECT * from t_myisam; | ||
4268 | 328 | HANDLER t_myisam OPEN; | ||
4269 | 329 | HANDLER t_myisam READ a FIRST; | ||
4270 | 330 | HANDLER t_myisam CLOSE; | ||
4271 | 331 | |||
4272 | 332 | DELETE FROM t_memory; | ||
4273 | 333 | INSERT INTO t_memory VALUES(0); | ||
4274 | 334 | UPDATE t_memory SET a = 1; | ||
4275 | 335 | REPLACE INTO t_memory VALUES(1); | ||
4276 | 336 | SELECT * from t_memory; | ||
4277 | 337 | |||
4278 | 338 | DELETE FROM t_archive; | ||
4279 | 339 | INSERT INTO t_archive VALUES(0); | ||
4280 | 340 | SELECT * from t_archive; | ||
4281 | 341 | |||
4282 | 342 | DELETE FROM t_csv; | ||
4283 | 343 | INSERT INTO t_csv VALUES(0); | ||
4284 | 344 | UPDATE t_csv SET a = 1; | ||
4285 | 345 | REPLACE INTO t_csv VALUES(1); | ||
4286 | 346 | SELECT * from t_csv; | ||
4287 | 347 | |||
4288 | 348 | DELETE FROM t_blackhole; | ||
4289 | 349 | INSERT INTO t_blackhole VALUES(0); | ||
4290 | 350 | UPDATE t_blackhole SET a = 1; | ||
4291 | 351 | REPLACE INTO t_blackhole VALUES(1); | ||
4292 | 352 | SELECT * from t_blackhole; | ||
4293 | 353 | |||
4294 | 354 | CREATE TABLE tt_innodb(a INT NOT NULL) ENGINE=InnoDB; | ||
4295 | 355 | CREATE TABLE tt_myisam(a INT NOT NULL) ENGINE=MyISAM; | ||
4296 | 356 | CREATE TABLE tt_memory(a INT NOT NULL) ENGINE=MEMORY; | ||
4297 | 357 | CREATE TABLE tt_csv(a INT NOT NULL) ENGINE=CSV; | ||
4298 | 358 | CREATE TABLE tt_blackhole(a INT NOT NULL) ENGINE=BLACKHOLE; | ||
4299 | 359 | CREATE TABLE tt_archive(a INT NOT NULL) ENGINE=ARCHIVE; | ||
4300 | 360 | |||
4301 | 361 | DROP TABLE tt_innodb; | ||
4302 | 362 | DROP TABLE tt_myisam; | ||
4303 | 363 | DROP TABLE tt_memory; | ||
4304 | 364 | DROP TABLE tt_csv; | ||
4305 | 365 | DROP TABLE tt_blackhole; | ||
4306 | 366 | DROP TABLE tt_archive; | ||
4307 | 367 | |||
4308 | 368 | --error ER_BAD_TABLE_ERROR | ||
4309 | 369 | DROP TABLE non_existing; | ||
4310 | 370 | |||
4311 | 371 | TRUNCATE TABLE t_innodb; | ||
4312 | 372 | TRUNCATE TABLE t_myisam; | ||
4313 | 373 | TRUNCATE TABLE t_memory; | ||
4314 | 374 | TRUNCATE TABLE t_csv; | ||
4315 | 375 | TRUNCATE TABLE t_blackhole; | ||
4316 | 376 | |||
4317 | 377 | RENAME TABLE t_innodb TO tmp, tmp TO t_innodb; | ||
4318 | 378 | RENAME TABLE t_myisam TO tmp, tmp TO t_myisam; | ||
4319 | 379 | RENAME TABLE t_memory TO tmp, tmp TO t_memory; | ||
4320 | 380 | RENAME TABLE t_csv TO tmp, tmp TO t_csv; | ||
4321 | 381 | RENAME TABLE t_blackhole TO tmp, tmp TO t_blackhole; | ||
4322 | 382 | RENAME TABLE t_archive TO tmp, tmp TO t_archive; | ||
4323 | 383 | |||
4324 | 384 | ALTER TABLE t_innodb ADD COLUMN b CHAR(10) NOT NULL; | ||
4325 | 385 | ALTER TABLE t_innodb DROP COLUMN b; | ||
4326 | 386 | ALTER TABLE t_myisam ADD COLUMN b CHAR(10) NOT NULL; | ||
4327 | 387 | ALTER TABLE t_myisam DROP COLUMN b; | ||
4328 | 388 | ALTER TABLE t_memory ADD COLUMN b CHAR(10) NOT NULL; | ||
4329 | 389 | ALTER TABLE t_memory DROP COLUMN b; | ||
4330 | 390 | ALTER TABLE t_csv ADD COLUMN b CHAR(10) NOT NULL; | ||
4331 | 391 | ALTER TABLE t_csv DROP COLUMN b; | ||
4332 | 392 | ALTER TABLE t_blackhole ADD COLUMN b CHAR(10) NOT NULL; | ||
4333 | 393 | ALTER TABLE t_blackhole DROP COLUMN b; | ||
4334 | 394 | ALTER TABLE t_archive ADD COLUMN b CHAR(10) NOT NULL; | ||
4335 | 395 | ALTER TABLE t_archive DROP COLUMN b; | ||
4336 | 396 | |||
4337 | 397 | ALTER TABLE t_innodb ADD KEY tmp (a); | ||
4338 | 398 | ALTER TABLE t_innodb DROP KEY tmp; | ||
4339 | 399 | ALTER TABLE t_myisam ADD KEY tmp (a); | ||
4340 | 400 | ALTER TABLE t_myisam DROP KEY tmp; | ||
4341 | 401 | ALTER TABLE t_memory ADD KEY tmp (a); | ||
4342 | 402 | ALTER TABLE t_memory DROP KEY tmp; | ||
4343 | 403 | ALTER TABLE t_blackhole ADD KEY tmp (a); | ||
4344 | 404 | ALTER TABLE t_blackhole DROP KEY tmp; | ||
4345 | 405 | |||
4346 | 406 | CREATE DATABASE test1; | ||
4347 | 407 | DROP DATABASE test1; | ||
4348 | 408 | |||
4349 | 409 | delimiter |; | ||
4350 | 410 | |||
4351 | 411 | CREATE PROCEDURE p1() | ||
4352 | 412 | BEGIN | ||
4353 | 413 | SELECT 1; | ||
4354 | 414 | END| | ||
4355 | 415 | |||
4356 | 416 | DROP PROCEDURE p1| | ||
4357 | 417 | |||
4358 | 418 | CREATE FUNCTION f1() RETURNS INT DETERMINISTIC | ||
4359 | 419 | BEGIN | ||
4360 | 420 | RETURN 1; | ||
4361 | 421 | END| | ||
4362 | 422 | |||
4363 | 423 | DROP FUNCTION f1| | ||
4364 | 424 | |||
4365 | 425 | delimiter ;| | ||
4366 | 426 | |||
4367 | 427 | CREATE VIEW v1 AS SELECT * FROM t_innodb; | ||
4368 | 428 | DROP VIEW v1; | ||
4369 | 429 | |||
4370 | 430 | INSERT INTO v_innodb VALUES(1); | ||
4371 | 431 | INSERT INTO v_blackhole VALUES(1); | ||
4372 | 432 | INSERT INTO v_myisam VALUES(1); | ||
4373 | 433 | INSERT INTO v_csv VALUES(1); | ||
4374 | 434 | INSERT INTO v_memory VALUES(1); | ||
4375 | 435 | INSERT INTO v_archive VALUES(1); | ||
4376 | 436 | |||
4377 | 437 | UNLOCK BINLOG; | ||
4378 | 438 | |||
4379 | 439 | # | ||
4380 | 440 | # Test incompatibility with delay_key_write=ALL | ||
4381 | 441 | # | ||
4382 | 442 | SELECT @@delay_key_write; | ||
4383 | 443 | |||
4384 | 444 | SET GLOBAL delay_key_write=ALL; | ||
4385 | 445 | --error ER_OPTION_PREVENTS_STATEMENT | ||
4386 | 446 | LOCK TABLES FOR BACKUP; | ||
4387 | 447 | |||
4388 | 448 | SET GLOBAL delay_key_write=default; | ||
4389 | 449 | SELECT @@delay_key_write; | ||
4390 | 450 | |||
4391 | 451 | # | ||
4392 | 452 | # read-only=1 + backup locks | ||
4393 | 453 | # | ||
4394 | 454 | |||
4395 | 455 | SET GLOBAL read_only=1; | ||
4396 | 456 | |||
4397 | 457 | INSERT INTO t_innodb VALUES(0); | ||
4398 | 458 | INSERT INTO t_myisam VALUES(0); | ||
4399 | 459 | |||
4400 | 460 | LOCK TABLES FOR BACKUP; | ||
4401 | 461 | |||
4402 | 462 | INSERT INTO t_innodb VALUES(0); | ||
4403 | 463 | --error ER_CANT_EXECUTE_WITH_BACKUP_LOCK | ||
4404 | 464 | INSERT INTO t_myisam VALUES(0); | ||
4405 | 465 | |||
4406 | 466 | UNLOCK TABLES; | ||
4407 | 467 | |||
4408 | 468 | INSERT INTO t_innodb VALUES(0); | ||
4409 | 469 | INSERT INTO t_myisam VALUES(0); | ||
4410 | 470 | |||
4411 | 471 | SET GLOBAL read_only=0; | ||
4412 | 472 | |||
4413 | 473 | # | ||
4414 | 474 | # Test that temporary tables are not affected by backup locks | ||
4415 | 475 | # | ||
4416 | 476 | LOCK TABLES FOR BACKUP; | ||
4417 | 477 | CREATE TEMPORARY TABLE tt_innodb(a INT NOT NULL) ENGINE=InnoDB; | ||
4418 | 478 | CREATE TEMPORARY TABLE tt_myisam(a INT NOT NULL) ENGINE=MyISAM; | ||
4419 | 479 | CREATE TEMPORARY TABLE tt_memory(a INT NOT NULL) ENGINE=MEMORY; | ||
4420 | 480 | CREATE TEMPORARY TABLE tt_csv(a INT NOT NULL) ENGINE=CSV; | ||
4421 | 481 | CREATE TEMPORARY TABLE tt_blackhole(a INT NOT NULL) ENGINE=BLACKHOLE; | ||
4422 | 482 | CREATE TEMPORARY TABLE tt_archive(a INT NOT NULL) ENGINE=ARCHIVE; | ||
4423 | 483 | |||
4424 | 484 | INSERT INTO tt_innodb VALUES(5); | ||
4425 | 485 | INSERT INTO tt_myisam VALUES(5); | ||
4426 | 486 | INSERT INTO tt_memory VALUES(5); | ||
4427 | 487 | INSERT INTO tt_csv VALUES(5); | ||
4428 | 488 | INSERT INTO tt_blackhole VALUES(5); | ||
4429 | 489 | INSERT INTO tt_archive VALUES(5); | ||
4430 | 490 | |||
4431 | 491 | LOCK BINLOG FOR BACKUP; | ||
4432 | 492 | |||
4433 | 493 | START TRANSACTION; | ||
4434 | 494 | SELECT * FROM tt_archive; | ||
4435 | 495 | SELECT * FROM tt_blackhole; | ||
4436 | 496 | SELECT * FROM tt_memory; | ||
4437 | 497 | SELECT * FROM tt_innodb; | ||
4438 | 498 | SELECT * FROM tt_myisam; | ||
4439 | 499 | INSERT INTO tt_innodb VALUES(6); | ||
4440 | 500 | INSERT INTO tt_myisam VALUES(6); | ||
4441 | 501 | INSERT INTO tt_memory VALUES(6); | ||
4442 | 502 | INSERT INTO tt_csv VALUES(6); | ||
4443 | 503 | INSERT INTO tt_blackhole VALUES(6); | ||
4444 | 504 | INSERT INTO tt_archive VALUES(6); | ||
4445 | 505 | COMMIT; | ||
4446 | 506 | |||
4447 | 507 | SELECT * FROM tt_archive; | ||
4448 | 508 | SELECT * FROM tt_blackhole; | ||
4449 | 509 | SELECT * FROM tt_memory; | ||
4450 | 510 | SELECT * FROM tt_innodb; | ||
4451 | 511 | SELECT * FROM tt_myisam; | ||
4452 | 512 | |||
4453 | 513 | DROP TEMPORARY TABLE tt_innodb; | ||
4454 | 514 | DROP TEMPORARY TABLE tt_myisam; | ||
4455 | 515 | DROP TEMPORARY TABLE tt_memory; | ||
4456 | 516 | DROP TEMPORARY TABLE tt_csv; | ||
4457 | 517 | DROP TEMPORARY TABLE tt_blackhole; | ||
4458 | 518 | DROP TEMPORARY TABLE tt_archive; | ||
4459 | 519 | |||
4460 | 520 | UNLOCK BINLOG; | ||
4461 | 521 | UNLOCK TABLES; | ||
4462 | 522 | |||
4463 | 523 | # | ||
4464 | 524 | # test that AUTOCOMMIT updates succeed with a BINLOG lock in the same connection with binlog disabled | ||
4465 | 525 | # | ||
4466 | 526 | |||
4467 | 527 | SELECT @@log_bin; | ||
4468 | 528 | |||
4469 | 529 | LOCK BINLOG FOR BACKUP; | ||
4470 | 530 | |||
4471 | 531 | INSERT INTO t_innodb VALUES(1); | ||
4472 | 532 | INSERT INTO t_myisam VALUES(1); | ||
4473 | 533 | |||
4474 | 534 | UNLOCK BINLOG; | ||
4475 | 535 | |||
4476 | 536 | # | ||
4477 | 537 | # Log tables | ||
4478 | 538 | # | ||
4479 | 539 | |||
4480 | 540 | SET @old_general_log = @@general_log; | ||
4481 | 541 | SET @old_slow_query_log = @@slow_query_log; | ||
4482 | 542 | SET @old_log_output = @@log_output; | ||
4483 | 543 | SET @old_long_query_time = @@SESSION.long_query_time; | ||
4484 | 544 | |||
4485 | 545 | SET SESSION long_query_time = 0; | ||
4486 | 546 | SET GLOBAL log_output = 'TABLE'; | ||
4487 | 547 | SET GLOBAL general_log = ON; | ||
4488 | 548 | SET GLOBAL slow_query_log = ON; | ||
4489 | 549 | |||
4490 | 550 | LOCK TABLES FOR BACKUP; | ||
4491 | 551 | |||
4492 | 552 | SELECT 1; | ||
4493 | 553 | |||
4494 | 554 | LOCK BINLOG FOR BACKUP; | ||
4495 | 555 | |||
4496 | 556 | SELECT 1; | ||
4497 | 557 | |||
4498 | 558 | UNLOCK BINLOG; | ||
4499 | 559 | |||
4500 | 560 | UNLOCK TABLES; | ||
4501 | 561 | |||
4502 | 562 | SET SESSION long_query_time = @old_long_query_time; | ||
4503 | 563 | SET GLOBAL log_output = @old_log_output; | ||
4504 | 564 | SET GLOBAL slow_query_log = @old_slow_query_log; | ||
4505 | 565 | SET GLOBAL general_log = @old_general_log; | ||
4506 | 566 | |||
4507 | 567 | SET SESSION lock_wait_timeout=default; | ||
4508 | 568 | |||
4509 | 569 | |||
4510 | 570 | --echo #----------------------------------------------------------------------- | ||
4511 | 571 | --echo # Multi-threaded tests | ||
4512 | 572 | --echo #----------------------------------------------------------------------- | ||
4513 | 573 | |||
4514 | 574 | --echo # connection default | ||
4515 | 575 | SET GLOBAL lock_wait_timeout=1; | ||
4516 | 576 | |||
4517 | 577 | CREATE USER user@localhost; | ||
4518 | 578 | GRANT ALL PRIVILEGES ON test.* TO user@localhost; | ||
4519 | 579 | |||
4520 | 580 | --connect(con1,localhost,root,,) | ||
4521 | 581 | |||
4522 | 582 | --connect(con2,localhost,user,,) | ||
4523 | 583 | |||
4524 | 584 | --connection default | ||
4525 | 585 | LOCK TABLES FOR BACKUP; | ||
4526 | 586 | |||
4527 | 587 | --connection con1 | ||
4528 | 588 | --echo # connection con1 | ||
4529 | 589 | --error ER_LOCK_WAIT_TIMEOUT | ||
4530 | 590 | SET GLOBAL delay_key_write=ALL; | ||
4531 | 591 | |||
4532 | 592 | --connection default | ||
4533 | 593 | --echo # connection default | ||
4534 | 594 | UNLOCK TABLES; | ||
4535 | 595 | |||
4536 | 596 | # | ||
4537 | 597 | # read-only=1 + backup locks | ||
4538 | 598 | # | ||
4539 | 599 | |||
4540 | 600 | --connection con2 | ||
4541 | 601 | --echo # connection con2 | ||
4542 | 602 | |||
4543 | 603 | START TRANSACTION; | ||
4544 | 604 | INSERT INTO t_innodb VALUES(0); | ||
4545 | 605 | |||
4546 | 606 | --connection default | ||
4547 | 607 | --echo # connection default | ||
4548 | 608 | |||
4549 | 609 | SET GLOBAL read_only=1; | ||
4550 | 610 | |||
4551 | 611 | --connection con2 | ||
4552 | 612 | --echo # connection con2 | ||
4553 | 613 | |||
4554 | 614 | --error ER_OPTION_PREVENTS_STATEMENT | ||
4555 | 615 | COMMIT; | ||
4556 | 616 | |||
4557 | 617 | --error ER_OPTION_PREVENTS_STATEMENT | ||
4558 | 618 | INSERT INTO t_innodb VALUES(0); | ||
4559 | 619 | --error ER_OPTION_PREVENTS_STATEMENT | ||
4560 | 620 | INSERT INTO t_myisam VALUES(0); | ||
4561 | 621 | |||
4562 | 622 | --connection con1 | ||
4563 | 623 | --echo # connection con1 | ||
4564 | 624 | |||
4565 | 625 | LOCK TABLES FOR BACKUP; | ||
4566 | 626 | |||
4567 | 627 | --connection con2 | ||
4568 | 628 | --echo # connection con2 | ||
4569 | 629 | |||
4570 | 630 | --error ER_OPTION_PREVENTS_STATEMENT | ||
4571 | 631 | INSERT INTO t_innodb VALUES(0); | ||
4572 | 632 | --error ER_OPTION_PREVENTS_STATEMENT | ||
4573 | 633 | INSERT INTO t_myisam VALUES(0); | ||
4574 | 634 | |||
4575 | 635 | --connection default | ||
4576 | 636 | --echo # connection default | ||
4577 | 637 | |||
4578 | 638 | SET GLOBAL read_only=0; | ||
4579 | 639 | |||
4580 | 640 | --connection con2 | ||
4581 | 641 | --echo # connection con2 | ||
4582 | 642 | INSERT INTO t_innodb VALUES(0); | ||
4583 | 643 | --error ER_LOCK_WAIT_TIMEOUT | ||
4584 | 644 | INSERT INTO t_myisam VALUES(0); | ||
4585 | 645 | |||
4586 | 646 | --connection default | ||
4587 | 647 | --echo # connection default | ||
4588 | 648 | |||
4589 | 649 | SET GLOBAL read_only=1; | ||
4590 | 650 | |||
4591 | 651 | --connection con2 | ||
4592 | 652 | --echo # connection con2 | ||
4593 | 653 | |||
4594 | 654 | --error ER_OPTION_PREVENTS_STATEMENT | ||
4595 | 655 | INSERT INTO t_innodb VALUES(0); | ||
4596 | 656 | --error ER_OPTION_PREVENTS_STATEMENT | ||
4597 | 657 | INSERT INTO t_myisam VALUES(0); | ||
4598 | 658 | |||
4599 | 659 | --connection con1 | ||
4600 | 660 | --echo # connection con1 | ||
4601 | 661 | |||
4602 | 662 | UNLOCK TABLES; | ||
4603 | 663 | |||
4604 | 664 | --connection con2 | ||
4605 | 665 | --echo # connection con2 | ||
4606 | 666 | |||
4607 | 667 | --error ER_OPTION_PREVENTS_STATEMENT | ||
4608 | 668 | INSERT INTO t_innodb VALUES(0); | ||
4609 | 669 | --error ER_OPTION_PREVENTS_STATEMENT | ||
4610 | 670 | INSERT INTO t_myisam VALUES(0); | ||
4611 | 671 | |||
4612 | 672 | --connection default | ||
4613 | 673 | --echo # connection default | ||
4614 | 674 | |||
4615 | 675 | SET GLOBAL read_only=0; | ||
4616 | 676 | |||
4617 | 677 | # | ||
4618 | 678 | # Test that temporary tables are not affected by backup locks | ||
4619 | 679 | # | ||
4620 | 680 | --connection default | ||
4621 | 681 | --echo # connection default | ||
4622 | 682 | LOCK TABLES FOR BACKUP; | ||
4623 | 683 | |||
4624 | 684 | --connection con1 | ||
4625 | 685 | --echo # connection con1 | ||
4626 | 686 | |||
4627 | 687 | CREATE TEMPORARY TABLE tt_innodb(a INT NOT NULL) ENGINE=InnoDB; | ||
4628 | 688 | CREATE TEMPORARY TABLE tt_myisam(a INT NOT NULL) ENGINE=MyISAM; | ||
4629 | 689 | CREATE TEMPORARY TABLE tt_memory(a INT NOT NULL) ENGINE=MEMORY; | ||
4630 | 690 | CREATE TEMPORARY TABLE tt_csv(a INT NOT NULL) ENGINE=CSV; | ||
4631 | 691 | CREATE TEMPORARY TABLE tt_blackhole(a INT NOT NULL) ENGINE=BLACKHOLE; | ||
4632 | 692 | CREATE TEMPORARY TABLE tt_archive(a INT NOT NULL) ENGINE=ARCHIVE; | ||
4633 | 693 | |||
4634 | 694 | INSERT INTO tt_innodb VALUES(5); | ||
4635 | 695 | INSERT INTO tt_myisam VALUES(5); | ||
4636 | 696 | INSERT INTO tt_memory VALUES(5); | ||
4637 | 697 | INSERT INTO tt_csv VALUES(5); | ||
4638 | 698 | INSERT INTO tt_blackhole VALUES(5); | ||
4639 | 699 | INSERT INTO tt_archive VALUES(5); | ||
4640 | 700 | |||
4641 | 701 | --connection default | ||
4642 | 702 | --echo # connection default | ||
4643 | 703 | LOCK BINLOG FOR BACKUP; | ||
4644 | 704 | |||
4645 | 705 | --connection con1 | ||
4646 | 706 | --echo # connection con1 | ||
4647 | 707 | |||
4648 | 708 | START TRANSACTION; | ||
4649 | 709 | SELECT * FROM tt_archive; | ||
4650 | 710 | SELECT * FROM tt_blackhole; | ||
4651 | 711 | SELECT * FROM tt_memory; | ||
4652 | 712 | SELECT * FROM tt_innodb; | ||
4653 | 713 | SELECT * FROM tt_myisam; | ||
4654 | 714 | INSERT INTO tt_innodb VALUES(6); | ||
4655 | 715 | INSERT INTO tt_myisam VALUES(6); | ||
4656 | 716 | INSERT INTO tt_memory VALUES(6); | ||
4657 | 717 | INSERT INTO tt_csv VALUES(6); | ||
4658 | 718 | INSERT INTO tt_blackhole VALUES(6); | ||
4659 | 719 | INSERT INTO tt_archive VALUES(6); | ||
4660 | 720 | COMMIT; | ||
4661 | 721 | |||
4662 | 722 | SELECT * FROM tt_archive; | ||
4663 | 723 | SELECT * FROM tt_blackhole; | ||
4664 | 724 | SELECT * FROM tt_memory; | ||
4665 | 725 | SELECT * FROM tt_innodb; | ||
4666 | 726 | SELECT * FROM tt_myisam; | ||
4667 | 727 | |||
4668 | 728 | DROP TEMPORARY TABLE tt_innodb; | ||
4669 | 729 | DROP TEMPORARY TABLE tt_myisam; | ||
4670 | 730 | DROP TEMPORARY TABLE tt_memory; | ||
4671 | 731 | DROP TEMPORARY TABLE tt_csv; | ||
4672 | 732 | DROP TEMPORARY TABLE tt_blackhole; | ||
4673 | 733 | DROP TEMPORARY TABLE tt_archive; | ||
4674 | 734 | |||
4675 | 735 | --connection default | ||
4676 | 736 | --echo # connection default | ||
4677 | 737 | |||
4678 | 738 | UNLOCK BINLOG; | ||
4679 | 739 | UNLOCK TABLES; | ||
4680 | 740 | |||
4681 | 741 | LOCK BINLOG FOR BACKUP; | ||
4682 | 742 | |||
4683 | 743 | --connection con1 | ||
4684 | 744 | --echo # connection con1 | ||
4685 | 745 | |||
4686 | 746 | # | ||
4687 | 747 | # test that AUTOCOMMIT updates are not blocked with a BINLOG lock in another | ||
4688 | 748 | # connection with binlog disabled | ||
4689 | 749 | # | ||
4690 | 750 | |||
4691 | 751 | SELECT @@log_bin; | ||
4692 | 752 | |||
4693 | 753 | INSERT INTO t_innodb VALUES(1); | ||
4694 | 754 | INSERT INTO t_myisam VALUES(1); | ||
4695 | 755 | |||
4696 | 756 | --connection default | ||
4697 | 757 | --echo # connection default | ||
4698 | 758 | |||
4699 | 759 | UNLOCK BINLOG; | ||
4700 | 760 | |||
4701 | 761 | # | ||
4702 | 762 | # LTFB + DDL / DML in another connection | ||
4703 | 763 | # | ||
4704 | 764 | |||
4705 | 765 | --connection default | ||
4706 | 766 | --echo # connection default | ||
4707 | 767 | |||
4708 | 768 | LOCK TABLES FOR BACKUP; | ||
4709 | 769 | |||
4710 | 770 | --connection con1 | ||
4711 | 771 | --echo # connection con1 | ||
4712 | 772 | |||
4713 | 773 | DELETE FROM t_innodb; | ||
4714 | 774 | INSERT INTO t_innodb VALUES(0); | ||
4715 | 775 | UPDATE t_innodb SET a = 1; | ||
4716 | 776 | REPLACE INTO t_innodb VALUES(1); | ||
4717 | 777 | SELECT * from t_innodb; | ||
4718 | 778 | HANDLER t_innodb OPEN; | ||
4719 | 779 | HANDLER t_innodb READ a FIRST; | ||
4720 | 780 | HANDLER t_innodb CLOSE; | ||
4721 | 781 | |||
4722 | 782 | --error ER_LOCK_WAIT_TIMEOUT | ||
4723 | 783 | INSERT INTO t_myisam VALUES(0); | ||
4724 | 784 | --error ER_LOCK_WAIT_TIMEOUT | ||
4725 | 785 | INSERT DELAYED INTO t_myisam VALUES(0); | ||
4726 | 786 | SELECT * FROM t_myisam; | ||
4727 | 787 | HANDLER t_myisam OPEN; | ||
4728 | 788 | HANDLER t_myisam READ a FIRST; | ||
4729 | 789 | HANDLER t_myisam CLOSE; | ||
4730 | 790 | |||
4731 | 791 | --error ER_LOCK_WAIT_TIMEOUT | ||
4732 | 792 | INSERT INTO t_memory VALUES(0); | ||
4733 | 793 | SELECT * FROM t_memory; | ||
4734 | 794 | |||
4735 | 795 | --error ER_LOCK_WAIT_TIMEOUT | ||
4736 | 796 | INSERT INTO t_archive VALUES(0); | ||
4737 | 797 | SELECT * FROM t_archive; | ||
4738 | 798 | |||
4739 | 799 | --error ER_LOCK_WAIT_TIMEOUT | ||
4740 | 800 | INSERT INTO t_csv VALUES(0); | ||
4741 | 801 | SELECT * FROM t_csv; | ||
4742 | 802 | |||
4743 | 803 | DELETE FROM t_blackhole; | ||
4744 | 804 | INSERT INTO t_blackhole VALUES(0); | ||
4745 | 805 | UPDATE t_blackhole SET a = 1; | ||
4746 | 806 | REPLACE INTO t_blackhole VALUES(1); | ||
4747 | 807 | SELECT * FROM t_blackhole; | ||
4748 | 808 | |||
4749 | 809 | --error ER_LOCK_WAIT_TIMEOUT | ||
4750 | 810 | CREATE TABLE tt_innodb(a INT NOT NULL) ENGINE=InnoDB; | ||
4751 | 811 | |||
4752 | 812 | --error ER_LOCK_WAIT_TIMEOUT | ||
4753 | 813 | DROP TABLE t_innodb; | ||
4754 | 814 | |||
4755 | 815 | --error ER_LOCK_WAIT_TIMEOUT | ||
4756 | 816 | DROP TABLE non_existing; | ||
4757 | 817 | |||
4758 | 818 | --error ER_LOCK_WAIT_TIMEOUT | ||
4759 | 819 | TRUNCATE TABLE t_innodb; | ||
4760 | 820 | |||
4761 | 821 | --error ER_LOCK_WAIT_TIMEOUT | ||
4762 | 822 | RENAME TABLE t_innodb TO tmp; | ||
4763 | 823 | |||
4764 | 824 | --error ER_LOCK_WAIT_TIMEOUT | ||
4765 | 825 | ALTER TABLE t_innodb ADD COLUMN b CHAR(10); | ||
4766 | 826 | |||
4767 | 827 | --error ER_LOCK_WAIT_TIMEOUT | ||
4768 | 828 | ALTER TABLE t_innodb ADD KEY (a); | ||
4769 | 829 | |||
4770 | 830 | --error ER_LOCK_WAIT_TIMEOUT | ||
4771 | 831 | DROP DATABASE test; | ||
4772 | 832 | --error ER_LOCK_WAIT_TIMEOUT | ||
4773 | 833 | CREATE DATABASE test1; | ||
4774 | 834 | |||
4775 | 835 | # The server overrides lock_wait_timeout to 1 year when opening system | ||
4776 | 836 | # tables. So ER_LOCK_WAIT_TIMEOUT can't be used here. | ||
4777 | 837 | |||
4778 | 838 | --let $id=`SELECT CONNECTION_ID()` | ||
4779 | 839 | |||
4780 | 840 | --send CREATE PROCEDURE p1() SELECT 1 | ||
4781 | 841 | |||
4782 | 842 | --connection default | ||
4783 | 843 | --echo # connection default | ||
4784 | 844 | |||
4785 | 845 | let $wait_condition= | ||
4786 | 846 | SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST | ||
4787 | 847 | WHERE STATE = "Waiting for backup lock" AND | ||
4788 | 848 | INFO = "CREATE PROCEDURE p1() SELECT 1"; | ||
4789 | 849 | --source include/wait_condition.inc | ||
4790 | 850 | |||
4791 | 851 | --disable_query_log | ||
4792 | 852 | --echo KILL QUERY #; | ||
4793 | 853 | --eval KILL QUERY $id | ||
4794 | 854 | --enable_query_log | ||
4795 | 855 | |||
4796 | 856 | --connection con1 | ||
4797 | 857 | --echo # connection con1 | ||
4798 | 858 | |||
4799 | 859 | --error ER_QUERY_INTERRUPTED | ||
4800 | 860 | --reap | ||
4801 | 861 | |||
4802 | 862 | --send CREATE FUNCTION f1() RETURNS INT DETERMINISTIC RETURN 1 | ||
4803 | 863 | |||
4804 | 864 | --connection default | ||
4805 | 865 | --echo # connection default | ||
4806 | 866 | |||
4807 | 867 | let $wait_condition= | ||
4808 | 868 | SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST | ||
4809 | 869 | WHERE STATE = "Waiting for backup lock" AND | ||
4810 | 870 | INFO = "CREATE FUNCTION f1() RETURNS INT DETERMINISTIC RETURN 1"; | ||
4811 | 871 | --source include/wait_condition.inc | ||
4812 | 872 | |||
4813 | 873 | --disable_query_log | ||
4814 | 874 | --echo KILL QUERY #; | ||
4815 | 875 | --eval KILL QUERY $id | ||
4816 | 876 | --enable_query_log | ||
4817 | 877 | |||
4818 | 878 | --connection con1 | ||
4819 | 879 | --echo # connection con1 | ||
4820 | 880 | |||
4821 | 881 | --error ER_QUERY_INTERRUPTED | ||
4822 | 882 | --reap | ||
4823 | 883 | |||
4824 | 884 | --error ER_LOCK_WAIT_TIMEOUT | ||
4825 | 885 | CREATE VIEW v1 AS SELECT * FROM t_innodb; | ||
4826 | 886 | |||
4827 | 887 | INSERT INTO v_innodb VALUES(1); | ||
4828 | 888 | INSERT INTO v_blackhole VALUES(1); | ||
4829 | 889 | --error ER_LOCK_WAIT_TIMEOUT | ||
4830 | 890 | INSERT INTO v_myisam VALUES(1); | ||
4831 | 891 | |||
4832 | 892 | --connection default | ||
4833 | 893 | --echo # connection default | ||
4834 | 894 | |||
4835 | 895 | UNLOCK TABLES; | ||
4836 | 896 | |||
4837 | 897 | # | ||
4838 | 898 | # LBFB + DML/DDL in another connection (and binlog disabled) | ||
4839 | 899 | # | ||
4840 | 900 | |||
4841 | 901 | LOCK BINLOG FOR BACKUP; | ||
4842 | 902 | |||
4843 | 903 | --connection con1 | ||
4844 | 904 | --echo # connection con1 | ||
4845 | 905 | |||
4846 | 906 | DELETE FROM t_innodb; | ||
4847 | 907 | INSERT INTO t_innodb VALUES(0); | ||
4848 | 908 | UPDATE t_innodb SET a = 1; | ||
4849 | 909 | REPLACE INTO t_innodb VALUES(1); | ||
4850 | 910 | SELECT * from t_innodb; | ||
4851 | 911 | HANDLER t_innodb OPEN; | ||
4852 | 912 | HANDLER t_innodb READ a FIRST; | ||
4853 | 913 | HANDLER t_innodb CLOSE; | ||
4854 | 914 | |||
4855 | 915 | DELETE FROM t_myisam; | ||
4856 | 916 | INSERT INTO t_myisam VALUES(0); | ||
4857 | 917 | UPDATE t_myisam SET a = 1; | ||
4858 | 918 | REPLACE INTO t_myisam VALUES(1); | ||
4859 | 919 | SELECT * from t_myisam; | ||
4860 | 920 | HANDLER t_myisam OPEN; | ||
4861 | 921 | HANDLER t_myisam READ a FIRST; | ||
4862 | 922 | HANDLER t_myisam CLOSE; | ||
4863 | 923 | |||
4864 | 924 | DELETE FROM t_memory; | ||
4865 | 925 | INSERT INTO t_memory VALUES(0); | ||
4866 | 926 | UPDATE t_memory SET a = 1; | ||
4867 | 927 | REPLACE INTO t_memory VALUES(1); | ||
4868 | 928 | SELECT * from t_memory; | ||
4869 | 929 | |||
4870 | 930 | INSERT INTO t_archive VALUES(0); | ||
4871 | 931 | SELECT * from t_archive; | ||
4872 | 932 | |||
4873 | 933 | DELETE FROM t_csv; | ||
4874 | 934 | INSERT INTO t_csv VALUES(0); | ||
4875 | 935 | UPDATE t_csv SET a = 1; | ||
4876 | 936 | REPLACE INTO t_csv VALUES(1); | ||
4877 | 937 | SELECT * from t_csv; | ||
4878 | 938 | |||
4879 | 939 | DELETE FROM t_blackhole; | ||
4880 | 940 | INSERT INTO t_blackhole VALUES(0); | ||
4881 | 941 | UPDATE t_blackhole SET a = 1; | ||
4882 | 942 | REPLACE INTO t_blackhole VALUES(1); | ||
4883 | 943 | SELECT * from t_blackhole; | ||
4884 | 944 | |||
4885 | 945 | CREATE TABLE tt_innodb(a INT NOT NULL) ENGINE=InnoDB; | ||
4886 | 946 | CREATE TABLE tt_myisam(a INT NOT NULL) ENGINE=MyISAM; | ||
4887 | 947 | CREATE TABLE tt_memory(a INT NOT NULL) ENGINE=MEMORY; | ||
4888 | 948 | CREATE TABLE tt_csv(a INT NOT NULL) ENGINE=CSV; | ||
4889 | 949 | CREATE TABLE tt_blackhole(a INT NOT NULL) ENGINE=BLACKHOLE; | ||
4890 | 950 | CREATE TABLE tt_archive(a INT NOT NULL) ENGINE=ARCHIVE; | ||
4891 | 951 | |||
4892 | 952 | DROP TABLE tt_innodb; | ||
4893 | 953 | DROP TABLE tt_myisam; | ||
4894 | 954 | DROP TABLE tt_memory; | ||
4895 | 955 | DROP TABLE tt_csv; | ||
4896 | 956 | DROP TABLE tt_blackhole; | ||
4897 | 957 | DROP TABLE tt_archive; | ||
4898 | 958 | |||
4899 | 959 | --error ER_BAD_TABLE_ERROR | ||
4900 | 960 | DROP TABLE non_existing; | ||
4901 | 961 | |||
4902 | 962 | TRUNCATE TABLE t_innodb; | ||
4903 | 963 | TRUNCATE TABLE t_myisam; | ||
4904 | 964 | TRUNCATE TABLE t_memory; | ||
4905 | 965 | TRUNCATE TABLE t_csv; | ||
4906 | 966 | TRUNCATE TABLE t_blackhole; | ||
4907 | 967 | |||
4908 | 968 | RENAME TABLE t_innodb TO tmp, tmp TO t_innodb; | ||
4909 | 969 | RENAME TABLE t_myisam TO tmp, tmp TO t_myisam; | ||
4910 | 970 | RENAME TABLE t_memory TO tmp, tmp TO t_memory; | ||
4911 | 971 | RENAME TABLE t_csv TO tmp, tmp TO t_csv; | ||
4912 | 972 | RENAME TABLE t_blackhole TO tmp, tmp TO t_blackhole; | ||
4913 | 973 | RENAME TABLE t_archive TO tmp, tmp TO t_archive; | ||
4914 | 974 | |||
4915 | 975 | ALTER TABLE t_innodb ADD COLUMN b CHAR(10) NOT NULL; | ||
4916 | 976 | ALTER TABLE t_innodb DROP COLUMN b; | ||
4917 | 977 | ALTER TABLE t_myisam ADD COLUMN b CHAR(10) NOT NULL; | ||
4918 | 978 | ALTER TABLE t_myisam DROP COLUMN b; | ||
4919 | 979 | ALTER TABLE t_memory ADD COLUMN b CHAR(10) NOT NULL; | ||
4920 | 980 | ALTER TABLE t_memory DROP COLUMN b; | ||
4921 | 981 | ALTER TABLE t_csv ADD COLUMN b CHAR(10) NOT NULL; | ||
4922 | 982 | ALTER TABLE t_csv DROP COLUMN b; | ||
4923 | 983 | ALTER TABLE t_blackhole ADD COLUMN b CHAR(10) NOT NULL; | ||
4924 | 984 | ALTER TABLE t_blackhole DROP COLUMN b; | ||
4925 | 985 | ALTER TABLE t_archive ADD COLUMN b CHAR(10) NOT NULL; | ||
4926 | 986 | ALTER TABLE t_archive DROP COLUMN b; | ||
4927 | 987 | |||
4928 | 988 | ALTER TABLE t_innodb ADD KEY tmp (a); | ||
4929 | 989 | ALTER TABLE t_innodb DROP KEY tmp; | ||
4930 | 990 | ALTER TABLE t_myisam ADD KEY tmp (a); | ||
4931 | 991 | ALTER TABLE t_myisam DROP KEY tmp; | ||
4932 | 992 | ALTER TABLE t_memory ADD KEY tmp (a); | ||
4933 | 993 | ALTER TABLE t_memory DROP KEY tmp; | ||
4934 | 994 | ALTER TABLE t_blackhole ADD KEY tmp (a); | ||
4935 | 995 | ALTER TABLE t_blackhole DROP KEY tmp; | ||
4936 | 996 | |||
4937 | 997 | CREATE DATABASE test1; | ||
4938 | 998 | DROP DATABASE test1; | ||
4939 | 999 | |||
4940 | 1000 | delimiter |; | ||
4941 | 1001 | |||
4942 | 1002 | CREATE PROCEDURE p1() | ||
4943 | 1003 | BEGIN | ||
4944 | 1004 | SELECT 1; | ||
4945 | 1005 | END| | ||
4946 | 1006 | |||
4947 | 1007 | DROP PROCEDURE p1| | ||
4948 | 1008 | |||
4949 | 1009 | CREATE FUNCTION f1() RETURNS INT DETERMINISTIC | ||
4950 | 1010 | BEGIN | ||
4951 | 1011 | RETURN 1; | ||
4952 | 1012 | END| | ||
4953 | 1013 | |||
4954 | 1014 | DROP FUNCTION f1| | ||
4955 | 1015 | |||
4956 | 1016 | delimiter ;| | ||
4957 | 1017 | |||
4958 | 1018 | CREATE VIEW v1 AS SELECT * FROM t_innodb; | ||
4959 | 1019 | DROP VIEW v1; | ||
4960 | 1020 | |||
4961 | 1021 | INSERT INTO v_innodb VALUES(1); | ||
4962 | 1022 | INSERT INTO v_blackhole VALUES(1); | ||
4963 | 1023 | INSERT INTO v_myisam VALUES(1); | ||
4964 | 1024 | INSERT INTO v_csv VALUES(1); | ||
4965 | 1025 | INSERT INTO v_memory VALUES(1); | ||
4966 | 1026 | INSERT INTO v_archive VALUES(1); | ||
4967 | 1027 | |||
4968 | 1028 | --connection default | ||
4969 | 1029 | --echo # connection default | ||
4970 | 1030 | |||
4971 | 1031 | UNLOCK BINLOG; | ||
4972 | 1032 | |||
4973 | 1033 | # | ||
4974 | 1034 | # Log tables | ||
4975 | 1035 | # | ||
4976 | 1036 | |||
4977 | 1037 | SET @old_general_log = @@general_log; | ||
4978 | 1038 | SET @old_slow_query_log = @@slow_query_log; | ||
4979 | 1039 | SET @old_log_output = @@log_output; | ||
4980 | 1040 | |||
4981 | 1041 | SET GLOBAL log_output = 'TABLE'; | ||
4982 | 1042 | SET GLOBAL general_log = ON; | ||
4983 | 1043 | SET GLOBAL slow_query_log = ON; | ||
4984 | 1044 | |||
4985 | 1045 | LOCK TABLES FOR BACKUP; | ||
4986 | 1046 | |||
4987 | 1047 | --connection con1 | ||
4988 | 1048 | --echo # connection con1 | ||
4989 | 1049 | |||
4990 | 1050 | SET @old_long_query_time = @@SESSION.long_query_time; | ||
4991 | 1051 | SET SESSION long_query_time = 0; | ||
4992 | 1052 | |||
4993 | 1053 | SELECT 1; | ||
4994 | 1054 | |||
4995 | 1055 | --connection default | ||
4996 | 1056 | --echo # connection default | ||
4997 | 1057 | |||
4998 | 1058 | LOCK BINLOG FOR BACKUP; | ||
4999 | 1059 | |||
5000 | 1060 | SELECT 1; |
http:// jenkins. percona. com/view/ PS%205. 6/job/percona- server- 5.6-param/ 522/