Merge lp:~stewart/drizzle/remove-ddl-implicit-commit into lp:drizzle/7.0

Proposed by Stewart Smith
Status: Superseded
Proposed branch: lp:~stewart/drizzle/remove-ddl-implicit-commit
Merge into: lp:drizzle/7.0
Diff against target: 1288 lines (+275/-70)
80 files modified
docs/transactional.rst (+8/-2)
drizzled/error.cc (+2/-0)
drizzled/error_t.h (+2/-2)
drizzled/statement/alter_schema.cc (+1/-3)
drizzled/statement/alter_table.cc (+4/-2)
drizzled/statement/create_index.cc (+2/-1)
drizzled/statement/create_schema.cc (+2/-1)
drizzled/statement/create_table.cc (+2/-3)
drizzled/statement/drop_index.cc (+2/-1)
drizzled/statement/drop_schema.cc (+4/-9)
drizzled/statement/drop_table.cc (+2/-1)
drizzled/statement/rename_table.cc (+8/-1)
drizzled/statement/truncate.cc (+3/-11)
drizzled/sys_var.cc (+15/-6)
plugin/haildb/tests/r/trx_isolation_read_uncommitted.result (+1/-0)
plugin/haildb/tests/r/trx_isolation_repeatable_read.result (+1/-0)
plugin/haildb/tests/r/trx_isolation_serializable.result (+1/-0)
plugin/haildb/tests/t/trx_isolation_read_uncommitted.test (+1/-0)
plugin/haildb/tests/t/trx_isolation_repeatable_read.test (+1/-0)
plugin/haildb/tests/t/trx_isolation_serializable.test (+1/-0)
plugin/innobase/tests/r/innodb-semi-consistent.result (+1/-0)
plugin/innobase/tests/r/innodb.result (+6/-1)
plugin/innobase/tests/r/innodb_bug51920.result (+1/-0)
plugin/innobase/tests/r/innodb_bug53674.result (+1/-0)
plugin/innobase/tests/r/innodb_mysql.result (+1/-0)
plugin/innobase/tests/r/unsafe_binlog_innodb.result (+1/-0)
plugin/innobase/tests/t/innodb-semi-consistent.test (+1/-0)
plugin/innobase/tests/t/innodb.test (+6/-1)
plugin/innobase/tests/t/innodb_bug51920.test (+1/-0)
plugin/innobase/tests/t/innodb_bug53674.test (+1/-0)
plugin/myisam/tests/r/mix2_myisam.result (+1/-0)
plugin/storage_engine_api_tester/tests/r/transaction.result (+1/-0)
plugin/storage_engine_api_tester/tests/t/transaction.test (+1/-0)
plugin/transaction_log/tests/r/auto_commit.result (+1/-0)
plugin/transaction_log/tests/r/transaction_log_transaction.result (+1/-0)
plugin/transaction_log/tests/t/auto_commit.inc (+1/-0)
plugin/transaction_log/tests/t/transaction_log_transaction.test (+1/-1)
plugin/utility_functions/tests/r/execute_wait.result (+23/-7)
plugin/utility_functions/tests/t/execute_wait.test (+10/-3)
tests/include.am (+1/-1)
tests/include/mix1.inc (+1/-0)
tests/include/mix2.inc (+1/-0)
tests/include/unsafe_binlog.inc (+1/-0)
tests/r/flush_block_commit.result (+1/-0)
tests/r/insert.result (+1/-0)
tests/r/randgen_queries.result (+1/-0)
tests/r/savepoints.result (+3/-0)
tests/r/select_in_null.result (+0/-2)
tests/r/statement_boundaries.result (+3/-1)
tests/r/transaction.result (+1/-0)
tests/r/trx_isolation_read_committed.result (+1/-0)
tests/suite/ddl_transactions/r/alter_schema.result (+6/-0)
tests/suite/ddl_transactions/r/alter_table.result (+8/-0)
tests/suite/ddl_transactions/r/create_index.result (+6/-0)
tests/suite/ddl_transactions/r/create_schema.result (+6/-0)
tests/suite/ddl_transactions/r/create_table.result (+4/-0)
tests/suite/ddl_transactions/r/drop_index.result (+6/-0)
tests/suite/ddl_transactions/r/drop_schema.result (+6/-0)
tests/suite/ddl_transactions/r/drop_table.result (+6/-0)
tests/suite/ddl_transactions/r/rename_table.result (+8/-0)
tests/suite/ddl_transactions/r/truncate_table.result (+7/-0)
tests/suite/ddl_transactions/t/alter_schema.test (+6/-0)
tests/suite/ddl_transactions/t/alter_table.test (+8/-0)
tests/suite/ddl_transactions/t/create_index.test (+6/-0)
tests/suite/ddl_transactions/t/create_schema.test (+6/-0)
tests/suite/ddl_transactions/t/create_table.test (+4/-0)
tests/suite/ddl_transactions/t/drop_index.test (+6/-0)
tests/suite/ddl_transactions/t/drop_schema.test (+6/-0)
tests/suite/ddl_transactions/t/drop_table.test (+6/-0)
tests/suite/ddl_transactions/t/rename_table.test (+6/-0)
tests/suite/ddl_transactions/t/truncate_table.test (+7/-0)
tests/t/flush_block_commit.test (+1/-1)
tests/t/insert.test (+1/-1)
tests/t/randgen_queries.test (+1/-1)
tests/t/savepoints.test (+3/-1)
tests/t/select_in_null.test (+0/-2)
tests/t/statement_boundaries.test (+4/-3)
tests/t/transaction.test (+1/-0)
tests/t/trx_isolation_read_committed.test (+1/-0)
tests/test-run.pl (+1/-1)
To merge this branch: bzr merge lp:~stewart/drizzle/remove-ddl-implicit-commit
Reviewer Review Type Date Requested Status
Brian Aker Needs Fixing
Review via email: mp+45189@code.launchpad.net

This proposal has been superseded by a proposal from 2011-01-07.

Description of the change

makes DDL operations error out if attempted to be performed within a ongoing transaction

http://hudson.drizzle.org/view/Drizzle-param/job/drizzle-param/696/

To post a comment you must log in.
Revision history for this message
Brian Aker (brianaker) wrote :

Hi!

=====
- byte.resize(sizeof("START TRANSACTION")); // +1 for the COM_QUERY, provided by null count from sizeof()
71 + byte.resize(sizeof("SET AUTOCOMMIT=0")); // +1 for the COM_QUERY, provided by null count from sizeof()
=====

You need to fix this so that the transaction works.

Cheers,
   -Brian

review: Needs Fixing
Revision history for this message
Stewart Smith (stewart) wrote :

I can only change this back so that DDL is impossible to do with EXECUTE (it will fail *SILENTLY*). Important to note when documenting EXECUTE.

1940. By Stewart Smith

merge trunk

1941. By Stewart Smith

revert patch that changed EXECUTE to use AUTOCOMMIT=0 instead of START TRANSACTION. Of course, this means that you cannot do DDL inside EXECUTE, so change the test and result for execute_wait test which did that.

1942. By Stewart Smith

add test for EXECUTE WAIT doing DDL that will actually do the DDL - run a COMMIT first.

1943. By Stewart Smith

merge trunk

Unmerged revisions

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'docs/transactional.rst'
2--- docs/transactional.rst 2010-12-19 22:50:00 +0000
3+++ docs/transactional.rst 2011-01-06 13:49:38 +0000
4@@ -6,19 +6,25 @@
5
6 start_transaction
7 commit
8- rollback
9+ rollback
10 savepoints
11
12 The essence of a transaction is that it groups multiple steps into a single, all-or-nothing operation. Drizzle is a transactional database by default and by design, meaning that changes and queries to the database appear to be Atomic, Consistent, Isolated, and Durable (ACID). This means that Drizzle implements `serializable <http://en.wikipedia.org/wiki/Serializability>`_, ACID transactions, even if the transaction is interrupted.
13
14+NOTE: Drizzle still supports non-transactional storage engines, and if these are used then you will not get transactional behaviour with them. The default engine is transactional.
15+
16 It collects operations that form tasks and stores them as a single operation, or if that operation is not possible it removes all changes attempted. Transactions are controlled via START TRANSACTION, ROLLBACK, and COMMIT. Savepoints are implemented to allow for a low leverl of granulairty.
17
18 A COMMIT statement ends a transaction within Drizzle and makes all changes visible to other users. The order of events is typically to issue a START TRANSACTION statement, execute one or more SQL statements, and then issue a COMMIT statement. Alternatively, a ROLLBACK statement can be issued, which undoes all the work performed since START TRANSACTION was issued. A COMMIT statement will also release any existing savepoints that may be in use.
19
20-Drizzle can operate in an autocommit mode, where each statement is committed, via: ::
21+Drizzle can operate in an autocommit mode, where each statement is committed at the end of statement, via: ::
22
23 SET AUTOCOMMIT= 1
24
25+If you set AUTOCOMMIT=1 during a transaction, that transaction will be committed as part of the SET AUTOCOMMIT=1 statement.
26+
27+Transactional DDL is currently not supported, although it may be in the future. This means that although currently you will get a ER_TRANSACTION_DDL_NOT_SUPPORTED error message if you try and execute DDL statements within a transaction, in future versions of Drizzle they may succeed.
28+
29 Currently DDL operations are performed as a single transaction, this limitation will be lifted in the future.
30
31
32
33=== modified file 'drizzled/error.cc'
34--- drizzled/error.cc 2011-01-04 23:23:25 +0000
35+++ drizzled/error.cc 2011-01-06 13:49:38 +0000
36@@ -529,6 +529,8 @@
37 ADD_ERROR_MESSAGE(ER_INVALID_BOOLEAN_VALUE, N_("Received an invalid BOOLEAN value '%s'."));
38 ADD_ERROR_MESSAGE(ER_INVALID_CAST_TO_BOOLEAN, N_("Invalid cast to BOOLEAN: '%s'."));
39
40+ // Transactional DDL
41+ ADD_ERROR_MESSAGE(ER_TRANSACTIONAL_DDL_NOT_SUPPORTED, N_("Transactional DDL not supported"));
42 // ASSERT Message
43 ADD_ERROR_MESSAGE(ER_ASSERT, N_("Assertion '%s' failed."));
44 ADD_ERROR_MESSAGE(ER_ASSERT_NULL, N_("Assertion '%s' failed, the result was NULL."));
45
46=== modified file 'drizzled/error_t.h'
47--- drizzled/error_t.h 2011-01-04 23:23:25 +0000
48+++ drizzled/error_t.h 2011-01-06 13:49:38 +0000
49@@ -784,10 +784,10 @@
50 ER_ASSERT_NULL,
51 ER_TABLE_DROP,
52 ER_INVALID_CAST_TO_BOOLEAN,
53-
54+ ER_TRANSACTIONAL_DDL_NOT_SUPPORTED,
55 // Leave ER_INVALID_BOOLEAN_VALUE as LAST, and force people to use tags
56 // instead of numbers in error messages in test.
57- ER_ERROR_LAST= ER_INVALID_CAST_TO_BOOLEAN
58+ ER_ERROR_LAST= ER_TRANSACTIONAL_DDL_NOT_SUPPORTED
59 };
60
61
62
63=== modified file 'drizzled/statement/alter_schema.cc'
64--- drizzled/statement/alter_schema.cc 2011-01-04 18:14:33 +0000
65+++ drizzled/statement/alter_schema.cc 2011-01-06 13:49:38 +0000
66@@ -59,9 +59,7 @@
67
68 if (session->inTransaction())
69 {
70- my_message(ER_LOCK_OR_ACTIVE_TRANSACTION,
71- ER(ER_LOCK_OR_ACTIVE_TRANSACTION),
72- MYF(0));
73+ my_error(ER_TRANSACTIONAL_DDL_NOT_SUPPORTED, MYF(0));
74 return true;
75 }
76 /*
77
78=== modified file 'drizzled/statement/alter_table.cc'
79--- drizzled/statement/alter_table.cc 2010-12-24 07:15:43 +0000
80+++ drizzled/statement/alter_table.cc 2011-01-06 13:49:38 +0000
81@@ -136,9 +136,11 @@
82 if (not validateCreateTableOption())
83 return true;
84
85- /* ALTER TABLE ends previous transaction */
86- if (not session->endActiveTransaction())
87+ if (session->inTransaction())
88+ {
89+ my_error(ER_TRANSACTIONAL_DDL_NOT_SUPPORTED, MYF(0));
90 return true;
91+ }
92
93 if (not (need_start_waiting= not session->wait_if_global_read_lock(0, 1)))
94 return true;
95
96=== modified file 'drizzled/statement/create_index.cc'
97--- drizzled/statement/create_index.cc 2010-12-18 04:43:40 +0000
98+++ drizzled/statement/create_index.cc 2011-01-06 13:49:38 +0000
99@@ -56,8 +56,9 @@
100 */
101
102 assert(first_table == all_tables && first_table != 0);
103- if (! session->endActiveTransaction())
104+ if (session->inTransaction())
105 {
106+ my_error(ER_TRANSACTIONAL_DDL_NOT_SUPPORTED, MYF(0));
107 return true;
108 }
109
110
111=== modified file 'drizzled/statement/create_schema.cc'
112--- drizzled/statement/create_schema.cc 2010-12-24 07:15:43 +0000
113+++ drizzled/statement/create_schema.cc 2011-01-06 13:49:38 +0000
114@@ -38,8 +38,9 @@
115 if (not validateSchemaOptions())
116 return true;
117
118- if (not session->endActiveTransaction())
119+ if (session->inTransaction())
120 {
121+ my_error(ER_TRANSACTIONAL_DDL_NOT_SUPPORTED, MYF(0));
122 return true;
123 }
124
125
126=== modified file 'drizzled/statement/create_table.cc'
127--- drizzled/statement/create_table.cc 2010-12-24 07:15:43 +0000
128+++ drizzled/statement/create_table.cc 2011-01-06 13:49:38 +0000
129@@ -67,12 +67,11 @@
130 return true;
131 }
132
133-
134- /* If CREATE TABLE of non-temporary table, do implicit commit */
135 if (not lex_identified_temp_table)
136 {
137- if (not session->endActiveTransaction())
138+ if (session->inTransaction())
139 {
140+ my_error(ER_TRANSACTIONAL_DDL_NOT_SUPPORTED, MYF(0));
141 return true;
142 }
143 }
144
145=== modified file 'drizzled/statement/drop_index.cc'
146--- drizzled/statement/drop_index.cc 2010-12-18 04:43:40 +0000
147+++ drizzled/statement/drop_index.cc 2011-01-06 13:49:38 +0000
148@@ -58,8 +58,9 @@
149 HA_CREATE_INFO create_info;
150
151 assert(first_table == all_tables && first_table != 0);
152- if (! session->endActiveTransaction())
153+ if (session->inTransaction())
154 {
155+ my_error(ER_TRANSACTIONAL_DDL_NOT_SUPPORTED, MYF(0));
156 return true;
157 }
158
159
160=== modified file 'drizzled/statement/drop_schema.cc'
161--- drizzled/statement/drop_schema.cc 2011-01-04 18:14:33 +0000
162+++ drizzled/statement/drop_schema.cc 2011-01-06 13:49:38 +0000
163@@ -34,10 +34,12 @@
164
165 bool statement::DropSchema::execute()
166 {
167- if (! session->endActiveTransaction())
168+ if (session->inTransaction())
169 {
170+ my_error(ER_TRANSACTIONAL_DDL_NOT_SUPPORTED, MYF(0));
171 return true;
172 }
173+
174 SchemaIdentifier schema_identifier(string(session->lex->name.str, session->lex->name.length));
175 if (not check_db_name(session, schema_identifier))
176 {
177@@ -45,14 +47,7 @@
178
179 return false;
180 }
181- if (session->inTransaction())
182- {
183- my_message(ER_LOCK_OR_ACTIVE_TRANSACTION,
184- ER(ER_LOCK_OR_ACTIVE_TRANSACTION),
185- MYF(0));
186- return true;
187- }
188-
189+
190 bool res = true;
191 std::string path;
192 schema_identifier.getSQLPath(path);
193
194=== modified file 'drizzled/statement/drop_table.cc'
195--- drizzled/statement/drop_table.cc 2010-12-31 02:23:39 +0000
196+++ drizzled/statement/drop_table.cc 2011-01-06 13:49:38 +0000
197@@ -93,8 +93,9 @@
198
199 if (not drop_temporary)
200 {
201- if (not session->endActiveTransaction())
202+ if (session->inTransaction())
203 {
204+ my_error(ER_TRANSACTIONAL_DDL_NOT_SUPPORTED, MYF(0));
205 return true;
206 }
207 }
208
209=== modified file 'drizzled/statement/rename_table.cc'
210--- drizzled/statement/rename_table.cc 2010-12-24 07:15:43 +0000
211+++ drizzled/statement/rename_table.cc 2011-01-06 13:49:38 +0000
212@@ -35,6 +35,13 @@
213 TableList *all_tables= session->lex->query_tables;
214 assert(first_table == all_tables && first_table != 0);
215 TableList *table;
216+
217+ if (session->inTransaction())
218+ {
219+ my_error(ER_TRANSACTIONAL_DDL_NOT_SUPPORTED, MYF(0));
220+ return true;
221+ }
222+
223 for (table= first_table; table; table= table->next_local->next_local)
224 {
225 TableList old_list, new_list;
226@@ -46,7 +53,7 @@
227 new_list= table->next_local[0];
228 }
229
230- if (! session->endActiveTransaction() || renameTables(first_table))
231+ if (renameTables(first_table))
232 {
233 return true;
234 }
235
236=== modified file 'drizzled/statement/truncate.cc'
237--- drizzled/statement/truncate.cc 2010-12-24 07:15:43 +0000
238+++ drizzled/statement/truncate.cc 2011-01-06 13:49:38 +0000
239@@ -29,22 +29,14 @@
240 bool statement::Truncate::execute()
241 {
242 TableList *first_table= (TableList *) session->lex->select_lex.table_list.first;
243- if (! session->endActiveTransaction())
244- {
245- return true;
246- }
247- /*
248- * Don't allow this within a transaction because we want to use
249- * re-generate table
250- */
251+
252 if (session->inTransaction())
253 {
254- my_message(ER_LOCK_OR_ACTIVE_TRANSACTION,
255- ER(ER_LOCK_OR_ACTIVE_TRANSACTION),
256- MYF(0));
257+ my_error(ER_TRANSACTIONAL_DDL_NOT_SUPPORTED, MYF(0));
258 return true;
259 }
260
261+
262 return truncate(*session, first_table);
263 }
264
265
266=== modified file 'drizzled/sys_var.cc'
267--- drizzled/sys_var.cc 2011-01-02 18:08:34 +0000
268+++ drizzled/sys_var.cc 2011-01-06 13:49:38 +0000
269@@ -1395,31 +1395,40 @@
270
271 static bool set_option_autocommit(Session *session, set_var *var)
272 {
273+ bool success= true;
274 /* The test is negative as the flag we use is NOT autocommit */
275
276 uint64_t org_options= session->options;
277+ uint64_t new_options= session->options;
278
279 if (var->save_result.uint32_t_value != 0)
280- session->options&= ~((sys_var_session_bit*) var->var)->bit_flag;
281+ new_options&= ~((sys_var_session_bit*) var->var)->bit_flag;
282 else
283- session->options|= ((sys_var_session_bit*) var->var)->bit_flag;
284+ new_options|= ((sys_var_session_bit*) var->var)->bit_flag;
285
286- if ((org_options ^ session->options) & OPTION_NOT_AUTOCOMMIT)
287+ if ((org_options ^ new_options) & OPTION_NOT_AUTOCOMMIT)
288 {
289 if ((org_options & OPTION_NOT_AUTOCOMMIT))
290 {
291+ success= session->endActiveTransaction();
292 /* We changed to auto_commit mode */
293 session->options&= ~(uint64_t) (OPTION_BEGIN);
294 session->server_status|= SERVER_STATUS_AUTOCOMMIT;
295- TransactionServices &transaction_services= TransactionServices::singleton();
296- if (transaction_services.commitTransaction(session, true))
297- return 1;
298 }
299 else
300 {
301 session->server_status&= ~SERVER_STATUS_AUTOCOMMIT;
302 }
303 }
304+
305+ if (var->save_result.uint32_t_value != 0)
306+ session->options&= ~((sys_var_session_bit*) var->var)->bit_flag;
307+ else
308+ session->options|= ((sys_var_session_bit*) var->var)->bit_flag;
309+
310+ if (not success)
311+ return true;
312+
313 return 0;
314 }
315
316
317=== modified file 'plugin/haildb/tests/r/trx_isolation_read_uncommitted.result'
318--- plugin/haildb/tests/r/trx_isolation_read_uncommitted.result 2010-05-31 06:30:16 +0000
319+++ plugin/haildb/tests/r/trx_isolation_read_uncommitted.result 2011-01-06 13:49:38 +0000
320@@ -29,4 +29,5 @@
321 a
322 1
323 2
324+COMMIT;
325 DROP TABLE t1;
326
327=== modified file 'plugin/haildb/tests/r/trx_isolation_repeatable_read.result'
328--- plugin/haildb/tests/r/trx_isolation_repeatable_read.result 2010-05-31 06:30:16 +0000
329+++ plugin/haildb/tests/r/trx_isolation_repeatable_read.result 2011-01-06 13:49:38 +0000
330@@ -22,4 +22,5 @@
331 a
332 1
333 2
334+COMMIT;
335 DROP TABLE t1;
336
337=== modified file 'plugin/haildb/tests/r/trx_isolation_serializable.result'
338--- plugin/haildb/tests/r/trx_isolation_serializable.result 2010-05-31 09:08:00 +0000
339+++ plugin/haildb/tests/r/trx_isolation_serializable.result 2011-01-06 13:49:38 +0000
340@@ -22,4 +22,5 @@
341 a
342 1
343 2
344+COMMIT;
345 DROP TABLE t1;
346
347=== modified file 'plugin/haildb/tests/t/trx_isolation_read_uncommitted.test'
348--- plugin/haildb/tests/t/trx_isolation_read_uncommitted.test 2010-05-31 06:30:16 +0000
349+++ plugin/haildb/tests/t/trx_isolation_read_uncommitted.test 2011-01-06 13:49:38 +0000
350@@ -30,6 +30,7 @@
351 BEGIN;
352 SELECT * from t1 order by a;
353
354+COMMIT;
355 DROP TABLE t1;
356
357 disconnect a;
358
359=== modified file 'plugin/haildb/tests/t/trx_isolation_repeatable_read.test'
360--- plugin/haildb/tests/t/trx_isolation_repeatable_read.test 2010-05-31 06:30:16 +0000
361+++ plugin/haildb/tests/t/trx_isolation_repeatable_read.test 2011-01-06 13:49:38 +0000
362@@ -30,6 +30,7 @@
363 BEGIN;
364 SELECT * from t1 order by a;
365
366+COMMIT;
367 DROP TABLE t1;
368
369 disconnect a;
370
371=== modified file 'plugin/haildb/tests/t/trx_isolation_serializable.test'
372--- plugin/haildb/tests/t/trx_isolation_serializable.test 2010-05-31 09:08:00 +0000
373+++ plugin/haildb/tests/t/trx_isolation_serializable.test 2011-01-06 13:49:38 +0000
374@@ -30,6 +30,7 @@
375 BEGIN;
376 SELECT * from t1 order by a;
377
378+COMMIT;
379 DROP TABLE t1;
380
381 disconnect a;
382
383=== modified file 'plugin/innobase/tests/r/innodb-semi-consistent.result'
384--- plugin/innobase/tests/r/innodb-semi-consistent.result 2010-09-12 14:34:27 +0000
385+++ plugin/innobase/tests/r/innodb-semi-consistent.result 2011-01-06 13:49:38 +0000
386@@ -34,5 +34,6 @@
387 10
388 11
389 7
390+commit;
391 drop table t1;
392 SET GLOBAL innodb_lock_wait_timeout=@orig_lock_wait_timeout ;
393
394=== modified file 'plugin/innobase/tests/r/innodb.result'
395--- plugin/innobase/tests/r/innodb.result 2010-12-08 21:50:36 +0000
396+++ plugin/innobase/tests/r/innodb.result 2011-01-06 13:49:38 +0000
397@@ -331,11 +331,12 @@
398 commit;
399 select * from t1;
400 id val
401+commit;
402 drop table t1;
403 create table t1 (a integer) engine=innodb;
404-start transaction;
405 rename table t1 to t2;
406 create table t1 (b integer) engine=innodb;
407+start transaction;
408 insert into t1 values (1);
409 rollback;
410 drop table t1;
411@@ -358,6 +359,7 @@
412 SELECT _userid FROM t1 WHERE _userid='marc@anyware.co.uk';
413 _userid
414 marc@anyware.co.uk
415+COMMIT;
416 drop table t1;
417 set autocommit=1;
418 CREATE TABLE t1 (
419@@ -829,6 +831,7 @@
420 set autocommit=0;
421 create table t1 (a int not null) engine= innodb;
422 insert into t1 values(1),(2);
423+commit;
424 truncate table t1;
425 commit;
426 truncate table t1;
427@@ -2536,6 +2539,7 @@
428 SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
429 insert into t1 select * from t2;
430 update t1 set b = (select e from t2 where a = d);
431+commit;
432 create table t3(d int not null, e int, primary key(d)) engine=innodb
433 select * from t2;
434 commit;
435@@ -2640,6 +2644,7 @@
436 CREATE TABLE t1 ( a int ) ENGINE=innodb;
437 BEGIN;
438 INSERT INTO t1 VALUES (1);
439+COMMIT;
440 ALTER TABLE t1 ENGINE=innodb;
441 DROP TABLE t1;
442 CREATE TABLE t1 (id int PRIMARY KEY, f int NOT NULL, INDEX(f)) ENGINE=InnoDB;
443
444=== modified file 'plugin/innobase/tests/r/innodb_bug51920.result'
445--- plugin/innobase/tests/r/innodb_bug51920.result 2010-10-15 06:47:31 +0000
446+++ plugin/innobase/tests/r/innodb_bug51920.result 2011-01-06 13:49:38 +0000
447@@ -8,4 +8,5 @@
448 SET @thread_id= ID;
449 KILL @thread_id;
450 Got one of the listed errors
451+COMMIT;
452 DROP TABLE bug51920;
453
454=== modified file 'plugin/innobase/tests/r/innodb_bug53674.result'
455--- plugin/innobase/tests/r/innodb_bug53674.result 2010-11-10 00:53:46 +0000
456+++ plugin/innobase/tests/r/innodb_bug53674.result 2011-01-06 13:49:38 +0000
457@@ -8,4 +8,5 @@
458 select * from bug53674 where a=(select a from bug53674 where a > 1);
459 a
460 2
461+commit;
462 drop table bug53674;
463
464=== modified file 'plugin/innobase/tests/r/innodb_mysql.result'
465--- plugin/innobase/tests/r/innodb_mysql.result 2010-12-08 22:35:56 +0000
466+++ plugin/innobase/tests/r/innodb_mysql.result 2011-01-06 13:49:38 +0000
467@@ -590,6 +590,7 @@
468 CREATE TABLE t2 (a int, b int, primary key (a));
469 BEGIN;
470 INSERT INTO t2 values(100,100);
471+COMMIT;
472 CREATE TABLE IF NOT EXISTS t2 (primary key (a)) select * from t1;
473 ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
474 SELECT * from t2;
475
476=== modified file 'plugin/innobase/tests/r/unsafe_binlog_innodb.result'
477--- plugin/innobase/tests/r/unsafe_binlog_innodb.result 2010-09-12 14:34:27 +0000
478+++ plugin/innobase/tests/r/unsafe_binlog_innodb.result 2011-01-06 13:49:38 +0000
479@@ -58,6 +58,7 @@
480 set autocommit = 0;
481 insert into t1 select * from t2;
482 update t1 set b = (select e from t2 where a = d);
483+COMMIT;
484 create table t3(d int not null, e int, primary key(d)) engine = InnoDB
485 select * from t2;
486 commit;
487
488=== modified file 'plugin/innobase/tests/t/innodb-semi-consistent.test'
489--- plugin/innobase/tests/t/innodb-semi-consistent.test 2010-09-12 14:34:27 +0000
490+++ plugin/innobase/tests/t/innodb-semi-consistent.test 2011-01-06 13:49:38 +0000
491@@ -42,6 +42,7 @@
492 commit;
493 connection a;
494 select * from t1;
495+commit;
496 drop table t1;
497 connection default;
498 disconnect a;
499
500=== modified file 'plugin/innobase/tests/t/innodb.test'
501--- plugin/innobase/tests/t/innodb.test 2010-12-07 09:12:12 +0000
502+++ plugin/innobase/tests/t/innodb.test 2011-01-06 13:49:38 +0000
503@@ -228,6 +228,7 @@
504 delete from t1;
505 commit;
506 select * from t1;
507+commit;
508 drop table t1;
509
510 #
511@@ -235,9 +236,9 @@
512 #
513
514 create table t1 (a integer) engine=innodb;
515-start transaction;
516 rename table t1 to t2;
517 create table t1 (b integer) engine=innodb;
518+start transaction;
519 insert into t1 values (1);
520 rollback;
521 drop table t1;
522@@ -260,6 +261,7 @@
523 COMMIT;
524 SELECT * FROM t1;
525 SELECT _userid FROM t1 WHERE _userid='marc@anyware.co.uk';
526+COMMIT;
527 drop table t1;
528 set autocommit=1;
529
530@@ -549,6 +551,7 @@
531 set autocommit=0;
532 create table t1 (a int not null) engine= innodb;
533 insert into t1 values(1),(2);
534+commit;
535 truncate table t1;
536 commit;
537 truncate table t1;
538@@ -1616,6 +1619,7 @@
539 SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
540 insert into t1 select * from t2;
541 update t1 set b = (select e from t2 where a = d);
542+commit;
543 create table t3(d int not null, e int, primary key(d)) engine=innodb
544 select * from t2;
545 commit;
546@@ -1810,6 +1814,7 @@
547 CREATE TABLE t1 ( a int ) ENGINE=innodb;
548 BEGIN;
549 INSERT INTO t1 VALUES (1);
550+COMMIT;
551 ALTER TABLE t1 ENGINE=innodb;
552 DROP TABLE t1;
553
554
555=== modified file 'plugin/innobase/tests/t/innodb_bug51920.test'
556--- plugin/innobase/tests/t/innodb_bug51920.test 2010-10-15 12:10:08 +0000
557+++ plugin/innobase/tests/t/innodb_bug51920.test 2011-01-06 13:49:38 +0000
558@@ -38,5 +38,6 @@
559 -- error ER_QUERY_INTERRUPTED,20,2
560 reap;
561 connection default;
562+COMMIT;
563 DROP TABLE bug51920;
564 -- disconnect con1
565
566=== modified file 'plugin/innobase/tests/t/innodb_bug53674.test'
567--- plugin/innobase/tests/t/innodb_bug53674.test 2010-11-10 00:53:46 +0000
568+++ plugin/innobase/tests/t/innodb_bug53674.test 2011-01-06 13:49:38 +0000
569@@ -3,4 +3,5 @@
570 start transaction;
571 select * from bug53674 for update;
572 select * from bug53674 where a=(select a from bug53674 where a > 1);
573+commit;
574 drop table bug53674;
575
576=== modified file 'plugin/myisam/tests/r/mix2_myisam.result'
577--- plugin/myisam/tests/r/mix2_myisam.result 2010-12-07 09:12:12 +0000
578+++ plugin/myisam/tests/r/mix2_myisam.result 2011-01-06 13:49:38 +0000
579@@ -1658,5 +1658,6 @@
580 create TEMPORARY table t1 ( a int ) ENGINE=MyISAM;
581 BEGIN;
582 INSERT INTO t1 VALUES (1);
583+COMMIT;
584 ALTER TABLE t1 ENGINE=MyISAM;
585 DROP TABLE t1;
586
587=== modified file 'plugin/storage_engine_api_tester/tests/r/transaction.result'
588--- plugin/storage_engine_api_tester/tests/r/transaction.result 2010-11-29 07:03:38 +0000
589+++ plugin/storage_engine_api_tester/tests/r/transaction.result 2011-01-06 13:49:38 +0000
590@@ -39,5 +39,6 @@
591 FROM t1_trx
592 INNER JOIN t1_non_trx ON t1_trx.k = t1_non_trx.k;
593 k v
594+COMMIT;
595 DROP TABLE t1_trx;
596 DROP TABLE t1_non_trx;
597
598=== modified file 'plugin/storage_engine_api_tester/tests/t/transaction.test'
599--- plugin/storage_engine_api_tester/tests/t/transaction.test 2010-11-29 07:03:38 +0000
600+++ plugin/storage_engine_api_tester/tests/t/transaction.test 2011-01-06 13:49:38 +0000
601@@ -52,5 +52,6 @@
602 FROM t1_trx
603 INNER JOIN t1_non_trx ON t1_trx.k = t1_non_trx.k;
604
605+COMMIT;
606 DROP TABLE t1_trx;
607 DROP TABLE t1_non_trx;
608
609=== modified file 'plugin/transaction_log/tests/r/auto_commit.result'
610--- plugin/transaction_log/tests/r/auto_commit.result 2010-12-21 20:47:29 +0000
611+++ plugin/transaction_log/tests/r/auto_commit.result 2011-01-06 13:49:38 +0000
612@@ -6,6 +6,7 @@
613 );
614 INSERT INTO t1 VALUES (1, "I love testing.");
615 INSERT INTO t1 VALUES (2, "I hate testing.");
616+COMMIT;
617 DROP TABLE t1;
618 SET AUTOCOMMIT= 1;
619 CREATE TABLE t1 (
620
621=== modified file 'plugin/transaction_log/tests/r/transaction_log_transaction.result'
622--- plugin/transaction_log/tests/r/transaction_log_transaction.result 2010-12-21 20:47:29 +0000
623+++ plugin/transaction_log/tests/r/transaction_log_transaction.result 2011-01-06 13:49:38 +0000
624@@ -572,6 +572,7 @@
625 INSERT INTO t1 (b) VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(100),(101);
626 INSERT INTO t2 (b) VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(100),(101);
627 UPDATE t1 SET b = b*10 WHERE b%2=0;
628+COMMIT;
629 CREATE TABLE t3 LIKE t1;
630 Check transaction_log_entries
631 SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
632
633=== modified file 'plugin/transaction_log/tests/t/auto_commit.inc'
634--- plugin/transaction_log/tests/t/auto_commit.inc 2009-12-11 21:28:10 +0000
635+++ plugin/transaction_log/tests/t/auto_commit.inc 2011-01-06 13:49:38 +0000
636@@ -16,6 +16,7 @@
637 INSERT INTO t1 VALUES (1, "I love testing.");
638 INSERT INTO t1 VALUES (2, "I hate testing.");
639
640+COMMIT;
641 DROP TABLE t1;
642
643 # Try the same thing with auto_commit turned on
644
645=== modified file 'plugin/transaction_log/tests/t/transaction_log_transaction.test'
646--- plugin/transaction_log/tests/t/transaction_log_transaction.test 2010-10-28 21:31:13 +0000
647+++ plugin/transaction_log/tests/t/transaction_log_transaction.test 2011-01-06 13:49:38 +0000
648@@ -77,7 +77,7 @@
649 INSERT INTO t1 (b) VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(100),(101);
650 INSERT INTO t2 (b) VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(100),(101);
651 UPDATE t1 SET b = b*10 WHERE b%2=0;
652-# this will cause implicit COMMIT
653+COMMIT;
654 CREATE TABLE t3 LIKE t1;
655
656 --source ../plugin/transaction_log/tests/t/check_transaction_log.inc
657
658=== modified file 'plugin/utility_functions/tests/r/execute_wait.result'
659--- plugin/utility_functions/tests/r/execute_wait.result 2010-12-09 06:44:30 +0000
660+++ plugin/utility_functions/tests/r/execute_wait.result 2011-01-06 13:49:38 +0000
661@@ -13,14 +13,30 @@
662 1 1
663 SELECT TABLE_NAME FROM DATA_DICTIONARY.TABLES WHERE TABLE_SCHEMA=SCHEMA() ORDER BY TABLE_NAME;
664 TABLE_NAME
665-A
666-B
667-C
668 t1
669 SELECT IF((COUNT(TABLE_NAME) = 3), "YES", "NO") FROM DATA_DICTIONARY.TABLES WHERE TABLE_NAME IN ("A", "B", "C") AND TABLE_SCHEMA=SCHEMA();
670 IF((COUNT(TABLE_NAME) = 3), "YES", "NO")
671+NO
672+DROP TABLE t1;
673+CREATE TABLE t1 (A VARCHAR(150));
674+SET @execute= "SELECT WAIT('barrier')";
675+INSERT INTO t1 VALUES ("COMMIT; CREATE TABLE A (A INT)"), ("COMMIT; CREATE TABLE B (A INT)"), ("CREATE TABLE C (A INT)");
676+SELECT A FROM t1 ORDER BY A;
677+A
678+COMMIT; CREATE TABLE A (A INT)
679+COMMIT; CREATE TABLE B (A INT)
680+CREATE TABLE C (A INT)
681+SELECT EXECUTE(A) WAIT, 1 FROM t1;
682+EXECUTE(A) WAIT 1
683+1 1
684+1 1
685+1 1
686+SELECT TABLE_NAME FROM DATA_DICTIONARY.TABLES WHERE TABLE_SCHEMA=SCHEMA() ORDER BY TABLE_NAME;
687+TABLE_NAME
688+A
689+B
690+t1
691+SELECT IF((COUNT(TABLE_NAME) = 2), "YES", "NO") FROM DATA_DICTIONARY.TABLES WHERE TABLE_NAME IN ("A", "B", "C") AND TABLE_SCHEMA=SCHEMA();
692+IF((COUNT(TABLE_NAME) = 2), "YES", "NO")
693 YES
694-DROP TABLE A;
695-DROP TABLE B;
696-DROP TABLE C;
697-DROP TABLE t1;
698+DROP TABLE A, B, t1;
699
700=== modified file 'plugin/utility_functions/tests/t/execute_wait.test'
701--- plugin/utility_functions/tests/t/execute_wait.test 2010-12-09 06:44:30 +0000
702+++ plugin/utility_functions/tests/t/execute_wait.test 2011-01-06 13:49:38 +0000
703@@ -6,7 +6,14 @@
704 SELECT EXECUTE(A) WAIT, 1 FROM t1;
705 SELECT TABLE_NAME FROM DATA_DICTIONARY.TABLES WHERE TABLE_SCHEMA=SCHEMA() ORDER BY TABLE_NAME;
706 SELECT IF((COUNT(TABLE_NAME) = 3), "YES", "NO") FROM DATA_DICTIONARY.TABLES WHERE TABLE_NAME IN ("A", "B", "C") AND TABLE_SCHEMA=SCHEMA();
707-DROP TABLE A;
708-DROP TABLE B;
709-DROP TABLE C;
710 DROP TABLE t1;
711+
712+CREATE TABLE t1 (A VARCHAR(150));
713+SET @execute= "SELECT WAIT('barrier')";
714+INSERT INTO t1 VALUES ("COMMIT; CREATE TABLE A (A INT)"), ("COMMIT; CREATE TABLE B (A INT)"), ("CREATE TABLE C (A INT)");
715+SELECT A FROM t1 ORDER BY A;
716+SELECT EXECUTE(A) WAIT, 1 FROM t1;
717+SELECT TABLE_NAME FROM DATA_DICTIONARY.TABLES WHERE TABLE_SCHEMA=SCHEMA() ORDER BY TABLE_NAME;
718+SELECT IF((COUNT(TABLE_NAME) = 2), "YES", "NO") FROM DATA_DICTIONARY.TABLES WHERE TABLE_NAME IN ("A", "B", "C") AND TABLE_SCHEMA=SCHEMA();
719+DROP TABLE A, B, t1;
720+
721
722=== modified file 'tests/include.am'
723--- tests/include.am 2011-01-05 04:45:57 +0000
724+++ tests/include.am 2011-01-06 13:49:38 +0000
725@@ -23,7 +23,7 @@
726 GENSCRIPTS = tests/dtr tests/mtr tests/test-run
727 PRESCRIPTS = tests/test-run.pl tests/stress-test.pl
728 PLUGIN_TESTS = $(pandora_plugin_test_list)
729-NORMAL_TESTS = main,bool_type,cast,flush_tables,identifiers,jp,mysql_compatibility,regression,tamil,time_type,unsigned_integer_type,uuid_type,$(PLUGIN_TESTS)
730+NORMAL_TESTS = main,bool_type,cast,ddl_transactions,flush_tables,identifiers,jp,mysql_compatibility,regression,tamil,time_type,unsigned_integer_type,uuid_type,$(PLUGIN_TESTS)
731 ALL_TESTS = main,big,jp,tamil,regression,$(PLUGIN_TESTS)
732 noinst_SCRIPTS = $(GENSCRIPTS) $(PRESCRIPTS)
733 CLEANFILES += $(GENSCRIPTS) tests/mtr
734
735=== modified file 'tests/include/mix1.inc'
736--- tests/include/mix1.inc 2010-12-07 18:12:07 +0000
737+++ tests/include/mix1.inc 2011-01-06 13:49:38 +0000
738@@ -653,6 +653,7 @@
739 CREATE TABLE t2 (a int, b int, primary key (a));
740 BEGIN;
741 INSERT INTO t2 values(100,100);
742+COMMIT;
743 --error ER_DUP_ENTRY
744 CREATE TABLE IF NOT EXISTS t2 (primary key (a)) select * from t1;
745 SELECT * from t2;
746
747=== modified file 'tests/include/mix2.inc'
748--- tests/include/mix2.inc 2010-12-07 09:12:12 +0000
749+++ tests/include/mix2.inc 2011-01-06 13:49:38 +0000
750@@ -2162,6 +2162,7 @@
751 eval create $temp table t1 ( a int ) ENGINE=$engine_type;
752 BEGIN;
753 INSERT INTO t1 VALUES (1);
754+COMMIT;
755 eval ALTER TABLE t1 ENGINE=$engine_type;
756 DROP TABLE t1;
757
758
759=== modified file 'tests/include/unsafe_binlog.inc'
760--- tests/include/unsafe_binlog.inc 2009-08-03 23:01:21 +0000
761+++ tests/include/unsafe_binlog.inc 2011-01-06 13:49:38 +0000
762@@ -116,6 +116,7 @@
763 set autocommit = 0;
764 insert into t1 select * from t2;
765 update t1 set b = (select e from t2 where a = d);
766+COMMIT;
767 eval create table t3(d int not null, e int, primary key(d)) engine = $engine_type
768 select * from t2;
769 commit;
770
771=== modified file 'tests/r/flush_block_commit.result'
772--- tests/r/flush_block_commit.result 2010-08-15 17:21:42 +0000
773+++ tests/r/flush_block_commit.result 2011-01-06 13:49:38 +0000
774@@ -36,4 +36,5 @@
775 show create database test;
776 Database Create Database
777 test CREATE DATABASE `test` COLLATE = utf8_general_ci
778+COMMIT;
779 drop table t1;
780
781=== modified file 'tests/r/insert.result'
782--- tests/r/insert.result 2010-04-20 18:23:07 +0000
783+++ tests/r/insert.result 2011-01-06 13:49:38 +0000
784@@ -82,6 +82,7 @@
785 select count(*) from t2;
786 count(*)
787 25500
788+COMMIT;
789 drop table t1,t2,t3;
790 create table t1 (a int, b int);
791 insert into t1 (a,b) values (a,b);
792
793=== modified file 'tests/r/randgen_queries.result'
794--- tests/r/randgen_queries.result 2010-12-20 07:54:13 +0000
795+++ tests/r/randgen_queries.result 2011-01-06 13:49:38 +0000
796@@ -160,4 +160,5 @@
797 select COUNT(*) from data_dictionary.tables;
798 COUNT(*)
799 ####.##.####
800+COMMIT;
801 DROP TABLE t1;
802
803=== modified file 'tests/r/savepoints.result'
804--- tests/r/savepoints.result 2010-12-21 02:58:40 +0000
805+++ tests/r/savepoints.result 2011-01-06 13:49:38 +0000
806@@ -5,6 +5,7 @@
807 UPDATE t1 SET id = 2 WHERE id != 2 LIMIT 0;
808 SAVEPOINT A;
809 End Test of Bug 534806
810+COMMIT;
811 DROP TABLE t1;
812 CREATE TABLE t1 (id INT NOT NULL PRIMARY KEY);
813 START TRANSACTION;
814@@ -45,6 +46,7 @@
815 2
816 3
817 4
818+COMMIT;
819 DROP TABLE t1;
820 Start Test of Bug 542299
821 CREATE TABLE t1 (a int,id integer auto_increment,b int,/*Indices*/key (a ),primary key (id)) ENGINE=innodb;
822@@ -57,4 +59,5 @@
823 INSERT INTO t1 ( a, b ) VALUES ( 1 , 9 );
824 ROLLBACK TO SAVEPOINT A;
825 End Test of Bug 542299
826+COMMIT;
827 DROP TABLE t1;
828
829=== modified file 'tests/r/select_in_null.result'
830--- tests/r/select_in_null.result 2009-10-19 03:26:17 +0000
831+++ tests/r/select_in_null.result 2011-01-06 13:49:38 +0000
832@@ -6,7 +6,6 @@
833 b int,
834 primary key( a )
835 ) engine=myisam;
836-begin;
837 insert into foo( b ) values (1),(1),(1),(1),(1);
838 create table t2 as select * from foo;
839 insert into foo( b ) select b from t2;
840@@ -23,7 +22,6 @@
841 create table t2 as select * from foo;
842 insert into foo( b ) select b from t2;
843 drop table t2;
844-commit;
845 explain select * from foo where a in (160000, 160001, 160002);
846 id select_type table type possible_keys key key_len ref rows Extra
847 1 SIMPLE foo range PRIMARY PRIMARY 4 NULL 3 Using where
848
849=== modified file 'tests/r/statement_boundaries.result'
850--- tests/r/statement_boundaries.result 2010-10-14 18:58:48 +0000
851+++ tests/r/statement_boundaries.result 2011-01-06 13:49:38 +0000
852@@ -6,6 +6,7 @@
853 SHOW STATUS LIKE 'Handler_commit%';
854 Variable_name Value
855 Handler_commit 0
856+COMMIT;
857 DROP SCHEMA IF EXISTS boundaries;
858 Warnings:
859 Note 1008 Can't drop schema 'boundaries'; schema doesn't exist
860@@ -20,10 +21,10 @@
861 SHOW STATUS LIKE 'Handler_commit%';
862 Variable_name Value
863 Handler_commit 1
864-BEGIN;
865 DROP SCHEMA IF EXISTS boundaries;
866 Warnings:
867 Note 1008 Can't drop schema 'boundaries'; schema doesn't exist
868+BEGIN;
869 COMMIT;
870 SHOW STATUS LIKE 'Handler_commit%';
871 Variable_name Value
872@@ -77,6 +78,7 @@
873 SHOW STATUS LIKE 'Handler_commit%';
874 Variable_name Value
875 Handler_commit 4
876+COMMIT;
877 drop table commit_test;
878 SHOW STATUS LIKE 'Handler_commit%';
879 Variable_name Value
880
881=== modified file 'tests/r/transaction.result'
882--- tests/r/transaction.result 2010-02-25 04:27:11 +0000
883+++ tests/r/transaction.result 2011-01-06 13:49:38 +0000
884@@ -39,5 +39,6 @@
885 FROM t1_trx
886 INNER JOIN t1_non_trx ON t1_trx.k = t1_non_trx.k;
887 k v
888+COMMIT;
889 DROP TABLE t1_trx;
890 DROP TABLE t1_non_trx;
891
892=== modified file 'tests/r/trx_isolation_read_committed.result'
893--- tests/r/trx_isolation_read_committed.result 2010-10-25 04:18:50 +0000
894+++ tests/r/trx_isolation_read_committed.result 2011-01-06 13:49:38 +0000
895@@ -30,4 +30,5 @@
896 a
897 1
898 2
899+COMMIT;
900 DROP TABLE t1;
901
902=== added directory 'tests/suite/ddl_transactions'
903=== removed directory 'tests/suite/ddl_transactions'
904=== added directory 'tests/suite/ddl_transactions/r'
905=== added file 'tests/suite/ddl_transactions/r/alter_schema.result'
906--- tests/suite/ddl_transactions/r/alter_schema.result 1970-01-01 00:00:00 +0000
907+++ tests/suite/ddl_transactions/r/alter_schema.result 2011-01-06 13:49:38 +0000
908@@ -0,0 +1,6 @@
909+CREATE SCHEMA foo;
910+begin;
911+alter schema foo collate = utf8_bin;
912+ERROR HY000: Transactional DDL not supported
913+commit;
914+DROP SCHEMA foo;
915
916=== added file 'tests/suite/ddl_transactions/r/alter_table.result'
917--- tests/suite/ddl_transactions/r/alter_table.result 1970-01-01 00:00:00 +0000
918+++ tests/suite/ddl_transactions/r/alter_table.result 2011-01-06 13:49:38 +0000
919@@ -0,0 +1,8 @@
920+CREATE TABLE t1 (a int);
921+BEGIN;
922+ALTER TABLE t1 ADD COLUMN b int;
923+ERROR HY000: Transactional DDL not supported
924+ALTER TABLE t1 DISCARD TABLESPACE;
925+ERROR HY000: Transactional DDL not supported
926+COMMIT;
927+DROP TABLE t1;
928
929=== added file 'tests/suite/ddl_transactions/r/create_index.result'
930--- tests/suite/ddl_transactions/r/create_index.result 1970-01-01 00:00:00 +0000
931+++ tests/suite/ddl_transactions/r/create_index.result 2011-01-06 13:49:38 +0000
932@@ -0,0 +1,6 @@
933+CREATE TABLE t1 (a int);
934+BEGIN;
935+CREATE INDEX foo on t1 (a);
936+ERROR HY000: Transactional DDL not supported
937+COMMIT;
938+DROP TABLE t1;
939
940=== added file 'tests/suite/ddl_transactions/r/create_schema.result'
941--- tests/suite/ddl_transactions/r/create_schema.result 1970-01-01 00:00:00 +0000
942+++ tests/suite/ddl_transactions/r/create_schema.result 2011-01-06 13:49:38 +0000
943@@ -0,0 +1,6 @@
944+CREATE SCHEMA foo;
945+DROP SCHEMA foo;
946+BEGIN;
947+CREATE SCHEMA foo;
948+ERROR HY000: Transactional DDL not supported
949+COMMIT;
950
951=== added file 'tests/suite/ddl_transactions/r/create_table.result'
952--- tests/suite/ddl_transactions/r/create_table.result 1970-01-01 00:00:00 +0000
953+++ tests/suite/ddl_transactions/r/create_table.result 2011-01-06 13:49:38 +0000
954@@ -0,0 +1,4 @@
955+BEGIN;
956+CREATE TABLE t1 (a int);
957+ERROR HY000: Transactional DDL not supported
958+COMMIT;
959
960=== added file 'tests/suite/ddl_transactions/r/drop_index.result'
961--- tests/suite/ddl_transactions/r/drop_index.result 1970-01-01 00:00:00 +0000
962+++ tests/suite/ddl_transactions/r/drop_index.result 2011-01-06 13:49:38 +0000
963@@ -0,0 +1,6 @@
964+CREATE TABLE t1 (a int, index a_idx (a));
965+BEGIN;
966+DROP INDEX a_idx on t1;
967+ERROR HY000: Transactional DDL not supported
968+commit;
969+drop table t1;
970
971=== added file 'tests/suite/ddl_transactions/r/drop_schema.result'
972--- tests/suite/ddl_transactions/r/drop_schema.result 1970-01-01 00:00:00 +0000
973+++ tests/suite/ddl_transactions/r/drop_schema.result 2011-01-06 13:49:38 +0000
974@@ -0,0 +1,6 @@
975+CREATE SCHEMA foo;
976+BEGIN;
977+DROP SCHEMA foo;
978+ERROR HY000: Transactional DDL not supported
979+commit;
980+DROP SCHEMA foo;
981
982=== added file 'tests/suite/ddl_transactions/r/drop_table.result'
983--- tests/suite/ddl_transactions/r/drop_table.result 1970-01-01 00:00:00 +0000
984+++ tests/suite/ddl_transactions/r/drop_table.result 2011-01-06 13:49:38 +0000
985@@ -0,0 +1,6 @@
986+CREATE TABLE t1 (a int);
987+BEGIN;
988+DROP TABLE t1;
989+ERROR HY000: Transactional DDL not supported
990+COMMIT;
991+DROP TABLE t1;
992
993=== added file 'tests/suite/ddl_transactions/r/rename_table.result'
994--- tests/suite/ddl_transactions/r/rename_table.result 1970-01-01 00:00:00 +0000
995+++ tests/suite/ddl_transactions/r/rename_table.result 2011-01-06 13:49:38 +0000
996@@ -0,0 +1,8 @@
997+CREATE TABLE t1 (a int);
998+begin;
999+RENAME TABLE t1 to t2;
1000+ERROR HY000: Transactional DDL not supported
1001+commit;
1002+DROP TABLE IF EXISTS t1,t2;
1003+Warnings:
1004+Note 1051 Unknown table 't2'
1005
1006=== added file 'tests/suite/ddl_transactions/r/truncate_table.result'
1007--- tests/suite/ddl_transactions/r/truncate_table.result 1970-01-01 00:00:00 +0000
1008+++ tests/suite/ddl_transactions/r/truncate_table.result 2011-01-06 13:49:38 +0000
1009@@ -0,0 +1,7 @@
1010+CREATE TABLE t1 (a int);
1011+insert into t1 values (1),(2),(42);
1012+BEGIN;
1013+TRUNCATE TABLE t1;
1014+ERROR HY000: Transactional DDL not supported
1015+COMMIT;
1016+DROP TABLE t1;
1017
1018=== added directory 'tests/suite/ddl_transactions/t'
1019=== added file 'tests/suite/ddl_transactions/t/alter_schema.test'
1020--- tests/suite/ddl_transactions/t/alter_schema.test 1970-01-01 00:00:00 +0000
1021+++ tests/suite/ddl_transactions/t/alter_schema.test 2011-01-06 13:49:38 +0000
1022@@ -0,0 +1,6 @@
1023+CREATE SCHEMA foo;
1024+begin;
1025+--error 1727
1026+alter schema foo collate = utf8_bin;
1027+commit;
1028+DROP SCHEMA foo;
1029
1030=== added file 'tests/suite/ddl_transactions/t/alter_table.test'
1031--- tests/suite/ddl_transactions/t/alter_table.test 1970-01-01 00:00:00 +0000
1032+++ tests/suite/ddl_transactions/t/alter_table.test 2011-01-06 13:49:38 +0000
1033@@ -0,0 +1,8 @@
1034+CREATE TABLE t1 (a int);
1035+BEGIN;
1036+--error 1727
1037+ALTER TABLE t1 ADD COLUMN b int;
1038+--error 1727
1039+ALTER TABLE t1 DISCARD TABLESPACE;
1040+COMMIT;
1041+DROP TABLE t1;
1042
1043=== added file 'tests/suite/ddl_transactions/t/create_index.test'
1044--- tests/suite/ddl_transactions/t/create_index.test 1970-01-01 00:00:00 +0000
1045+++ tests/suite/ddl_transactions/t/create_index.test 2011-01-06 13:49:38 +0000
1046@@ -0,0 +1,6 @@
1047+CREATE TABLE t1 (a int);
1048+BEGIN;
1049+--error 1727
1050+CREATE INDEX foo on t1 (a);
1051+COMMIT;
1052+DROP TABLE t1;
1053
1054=== added file 'tests/suite/ddl_transactions/t/create_schema.test'
1055--- tests/suite/ddl_transactions/t/create_schema.test 1970-01-01 00:00:00 +0000
1056+++ tests/suite/ddl_transactions/t/create_schema.test 2011-01-06 13:49:38 +0000
1057@@ -0,0 +1,6 @@
1058+CREATE SCHEMA foo;
1059+DROP SCHEMA foo;
1060+BEGIN;
1061+--error 1727
1062+CREATE SCHEMA foo;
1063+COMMIT;
1064
1065=== added file 'tests/suite/ddl_transactions/t/create_table.test'
1066--- tests/suite/ddl_transactions/t/create_table.test 1970-01-01 00:00:00 +0000
1067+++ tests/suite/ddl_transactions/t/create_table.test 2011-01-06 13:49:38 +0000
1068@@ -0,0 +1,4 @@
1069+BEGIN;
1070+--error 1727
1071+CREATE TABLE t1 (a int);
1072+COMMIT;
1073
1074=== added file 'tests/suite/ddl_transactions/t/drop_index.test'
1075--- tests/suite/ddl_transactions/t/drop_index.test 1970-01-01 00:00:00 +0000
1076+++ tests/suite/ddl_transactions/t/drop_index.test 2011-01-06 13:49:38 +0000
1077@@ -0,0 +1,6 @@
1078+CREATE TABLE t1 (a int, index a_idx (a));
1079+BEGIN;
1080+--error 1727
1081+DROP INDEX a_idx on t1;
1082+commit;
1083+drop table t1;
1084
1085=== added file 'tests/suite/ddl_transactions/t/drop_schema.test'
1086--- tests/suite/ddl_transactions/t/drop_schema.test 1970-01-01 00:00:00 +0000
1087+++ tests/suite/ddl_transactions/t/drop_schema.test 2011-01-06 13:49:38 +0000
1088@@ -0,0 +1,6 @@
1089+CREATE SCHEMA foo;
1090+BEGIN;
1091+--error 1727
1092+DROP SCHEMA foo;
1093+commit;
1094+DROP SCHEMA foo;
1095
1096=== added file 'tests/suite/ddl_transactions/t/drop_table.test'
1097--- tests/suite/ddl_transactions/t/drop_table.test 1970-01-01 00:00:00 +0000
1098+++ tests/suite/ddl_transactions/t/drop_table.test 2011-01-06 13:49:38 +0000
1099@@ -0,0 +1,6 @@
1100+CREATE TABLE t1 (a int);
1101+BEGIN;
1102+--error 1727
1103+DROP TABLE t1;
1104+COMMIT;
1105+DROP TABLE t1;
1106
1107=== added file 'tests/suite/ddl_transactions/t/rename_table.test'
1108--- tests/suite/ddl_transactions/t/rename_table.test 1970-01-01 00:00:00 +0000
1109+++ tests/suite/ddl_transactions/t/rename_table.test 2011-01-06 13:49:38 +0000
1110@@ -0,0 +1,6 @@
1111+CREATE TABLE t1 (a int);
1112+begin;
1113+--error 1727
1114+RENAME TABLE t1 to t2;
1115+commit;
1116+DROP TABLE IF EXISTS t1,t2;
1117
1118=== added file 'tests/suite/ddl_transactions/t/truncate_table.test'
1119--- tests/suite/ddl_transactions/t/truncate_table.test 1970-01-01 00:00:00 +0000
1120+++ tests/suite/ddl_transactions/t/truncate_table.test 2011-01-06 13:49:38 +0000
1121@@ -0,0 +1,7 @@
1122+CREATE TABLE t1 (a int);
1123+insert into t1 values (1),(2),(42);
1124+BEGIN;
1125+--error 1727
1126+TRUNCATE TABLE t1;
1127+COMMIT;
1128+DROP TABLE t1;
1129
1130=== modified file 'tests/t/flush_block_commit.test'
1131--- tests/t/flush_block_commit.test 2010-11-11 12:52:12 +0000
1132+++ tests/t/flush_block_commit.test 2011-01-06 13:49:38 +0000
1133@@ -71,7 +71,7 @@
1134 begin;
1135 select * from t1;
1136 show create database test;
1137-
1138+COMMIT;
1139 drop table t1;
1140
1141 # End of 4.1 tests
1142
1143=== modified file 'tests/t/insert.test'
1144--- tests/t/insert.test 2010-08-26 21:56:15 +0000
1145+++ tests/t/insert.test 2011-01-06 13:49:38 +0000
1146@@ -94,7 +94,6 @@
1147 create table t2(id2 int not null, t char(12));
1148 create table t3(id3 int not null, t char(12), index(id3));
1149 disable_query_log;
1150-set autocommit=0;
1151 begin;
1152 let $1 = 100;
1153 while ($1)
1154@@ -120,6 +119,7 @@
1155 insert into t2 select t1.* from t1, t2 t, t3 where t1.id1 = t.id2 and t.id2 = t3.id3;
1156 insert into t2 select SQL_BIG_RESULT t1.* from t1, t2 t, t3 where t1.id1 = t.id2 and t.id2 = t3.id3;
1157 select count(*) from t2;
1158+COMMIT;
1159 drop table t1,t2,t3;
1160
1161 #
1162
1163=== modified file 'tests/t/randgen_queries.test'
1164--- tests/t/randgen_queries.test 2010-07-21 19:15:45 +0000
1165+++ tests/t/randgen_queries.test 2011-01-06 13:49:38 +0000
1166@@ -96,5 +96,5 @@
1167 --replace_column 1 ####.##.####
1168 --sorted_result
1169 select COUNT(*) from data_dictionary.tables;
1170-
1171+COMMIT;
1172 DROP TABLE t1;
1173
1174=== modified file 'tests/t/savepoints.test'
1175--- tests/t/savepoints.test 2010-12-21 02:58:40 +0000
1176+++ tests/t/savepoints.test 2011-01-06 13:49:38 +0000
1177@@ -12,7 +12,7 @@
1178 SAVEPOINT A;
1179
1180 --echo End Test of Bug 534806
1181-
1182+COMMIT;
1183 DROP TABLE t1;
1184
1185 # Let's test the non-edge case for SAVEPOINTS:
1186@@ -62,6 +62,7 @@
1187
1188 # t1 should have 1,2,3,4 in it.
1189 SELECT * FROM t1;
1190+COMMIT;
1191 DROP TABLE t1;
1192
1193 #
1194@@ -81,4 +82,5 @@
1195 ROLLBACK TO SAVEPOINT A;
1196
1197 --echo End Test of Bug 542299
1198+COMMIT;
1199 DROP TABLE t1;
1200
1201=== modified file 'tests/t/select_in_null.test'
1202--- tests/t/select_in_null.test 2009-10-19 03:26:17 +0000
1203+++ tests/t/select_in_null.test 2011-01-06 13:49:38 +0000
1204@@ -12,7 +12,6 @@
1205 primary key( a )
1206 ) engine=myisam;
1207
1208-begin;
1209 insert into foo( b ) values (1),(1),(1),(1),(1);
1210 create table t2 as select * from foo;
1211 insert into foo( b ) select b from t2;
1212@@ -29,7 +28,6 @@
1213 create table t2 as select * from foo;
1214 insert into foo( b ) select b from t2;
1215 drop table t2;
1216-commit;
1217
1218 explain select * from foo where a in (160000, 160001, 160002);
1219 explain select * from foo where a in (null, 160000, 160001, 160002);
1220
1221=== modified file 'tests/t/statement_boundaries.test'
1222--- tests/t/statement_boundaries.test 2010-03-14 20:36:41 +0000
1223+++ tests/t/statement_boundaries.test 2011-01-06 13:49:38 +0000
1224@@ -16,10 +16,10 @@
1225
1226 SHOW STATUS LIKE 'Handler_commit%';
1227
1228+COMMIT;
1229 DROP SCHEMA IF EXISTS boundaries;
1230
1231-# Expect 1 commit count since above DROP SCHEMA
1232-# will implicitly call COMMIT.
1233+# Expect 1 commit count since above COMMIT before DROP SCHEMA
1234 #
1235 # When we get transactional DDL, should be 0.
1236 SHOW STATUS LIKE 'Handler_commit%';
1237@@ -38,8 +38,8 @@
1238 SET AUTOCOMMIT= 1;
1239
1240 SHOW STATUS LIKE 'Handler_commit%';
1241+DROP SCHEMA IF EXISTS boundaries;
1242 BEGIN;
1243-DROP SCHEMA IF EXISTS boundaries;
1244 COMMIT;
1245
1246 SHOW STATUS LIKE 'Handler_commit%';
1247@@ -83,5 +83,6 @@
1248
1249
1250 SHOW STATUS LIKE 'Handler_commit%';
1251+COMMIT;
1252 drop table commit_test;
1253 SHOW STATUS LIKE 'Handler_commit%';
1254
1255=== modified file 'tests/t/transaction.test'
1256--- tests/t/transaction.test 2010-02-25 04:27:11 +0000
1257+++ tests/t/transaction.test 2011-01-06 13:49:38 +0000
1258@@ -52,5 +52,6 @@
1259 FROM t1_trx
1260 INNER JOIN t1_non_trx ON t1_trx.k = t1_non_trx.k;
1261
1262+COMMIT;
1263 DROP TABLE t1_trx;
1264 DROP TABLE t1_non_trx;
1265
1266=== modified file 'tests/t/trx_isolation_read_committed.test'
1267--- tests/t/trx_isolation_read_committed.test 2010-10-25 04:18:50 +0000
1268+++ tests/t/trx_isolation_read_committed.test 2011-01-06 13:49:38 +0000
1269@@ -36,6 +36,7 @@
1270 BEGIN;
1271 SELECT * from t1 order by a;
1272
1273+COMMIT;
1274 DROP TABLE t1;
1275
1276 disconnect a;
1277
1278=== modified file 'tests/test-run.pl'
1279--- tests/test-run.pl 2011-01-05 04:45:57 +0000
1280+++ tests/test-run.pl 2011-01-06 13:49:38 +0000
1281@@ -148,7 +148,7 @@
1282
1283 our $opt_usage;
1284 our $opt_suites;
1285-our $opt_suites_default= "main,bool_type,cast,flush_tables,identifiers,jp,mysql_compatibility,regression,tamil,time_type,unsigned_integer_type,uuid_type"; # Default suites to run
1286+our $opt_suites_default= "main,bool_type,cast,ddl_transactions,flush_tables,identifiers,jp,mysql_compatibility,regression,tamil,time_type,unsigned_integer_type,uuid_type"; # Default suites to run
1287 our $opt_script_debug= 0; # Script debugging, enable with --script-debug
1288 our $opt_verbose= 0; # Verbose output, enable with --verbose
1289

Subscribers

People subscribed via source and target branches