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

Proposed by Stewart Smith
Status: Merged
Approved by: Lee Bieber
Approved revision: 1943
Merged at revision: 2100
Proposed branch: lp:~stewart/drizzle/remove-ddl-implicit-commit
Merge into: lp:drizzle/7.0
Diff against target: 1279 lines (+275/-69)
79 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 (+5/-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)
To merge this branch: bzr merge lp:~stewart/drizzle/remove-ddl-implicit-commit
Reviewer Review Type Date Requested Status
Lee Bieber Pending
Brian Aker Pending
Review via email: mp+47010@code.launchpad.net

This proposal supersedes a proposal from 2011-01-07.

Description of the change

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

this time with EXECUTE continuing to use START TRANSACTION - which means if you want to do DDL in EXECUTE you have to have an explicit COMMIT statement there (test added).

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

now merged with trunk.

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

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 : Posted in a previous version of this proposal

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.

Revision history for this message
Lee Bieber (kalebral-deactivatedaccount) wrote : Posted in a previous version of this proposal
review: Needs Fixing
Revision history for this message
Lee Bieber (kalebral-deactivatedaccount) wrote : Posted in a previous version of this proposal

One other fix needed, all the ddl_transaction tests need to use the actual error msg instead of the error number

review: Needs Fixing
Revision history for this message
Stewart Smith (stewart) wrote : Posted in a previous version of this proposal

So it turns out we don't have a test for executing the SQL done by transaction reader in the test suite (we probably should have one).

The next issue is that we've historically had DDL wrapped in BEGIN and COMMIT to be forwards compatible for when we have DDL transactions... and this worked okay because we currently have had an implicit commit in DDL operations. With this patch, that goes away.

So we could either:
a) change the server to detect that the txn only can have DDL or DML in it
b) move all DDL ops to be within txn calls and the engines have to throw errors themselves (what I've viewed to be the eventual solution)
c) change transaction_reader to optionally (and at least at the moment by default) not wrap DDL in BEGIN/COMMIT (or use SET AUTOCOMMIT=0, which makes it magically just work)

I think i'm preferring (c) with SET AUTOCOMMIT=0 for DDL only txns.

Revision history for this message
Brian Aker (brianaker) wrote : Posted in a previous version of this proposal

David should chime in on this.

Revision history for this message
David Shrewsbury (dshrews) wrote : Posted in a previous version of this proposal

> David should chime in on this.

I'm not so concerned with whether or not (or even how) we change transaction_reader. That's a rather simple change. My concern is will the broader implications of this with respect to replication.

Any reader of the transaction messages from the transaction log (or direct replication stream) that wants to apply the messages on another Drizzle server will be impacted by this. It would be kind of bad of us to say "you need to handle DDL messages this way" and then change it later on down the road to a different way.

I suppose Stewart's hack of beginning DDL transactions with SET AUTOCOMMIT=0 and including the unnecessary COMMIT after the DDL will work for them now AND in the future, but it forces the implementer to add logic to look at the first Statement and decide if this is DDL or DML, then choose to use either BEGIN or AUTOCOMMIT=0. Not that difficult, but just more complex than it has to be.

So I guess I'm saying it would be nice if we could go ahead and implement option (b), but if that's not feasible at the moment, we can go ahead and do (c) as an interim solution if this change is necessary.

Revision history for this message
Stewart Smith (stewart) wrote : Posted in a previous version of this proposal

Do you want to go on implementing the (c) solution? Not sure when (b) should be looked at... possibly a bit out of scope this week...

Revision history for this message
David Shrewsbury (dshrews) wrote : Posted in a previous version of this proposal
Revision history for this message
Stewart Smith (stewart) wrote : Posted in a previous version of this proposal

Now that we have the txn log fix approved, this branch should be soon too.

Revision history for this message
Lee Bieber (kalebral-deactivatedaccount) wrote : Posted in a previous version of this proposal

Please re-merge with trunk, getting these conflicts:

Text conflict in docs/transactional.rst
Text conflict in drizzled/statement/drop_schema.cc
Text conflict in drizzled/sys_var.cc
Text conflict in tests/include.am
Text conflict in tests/test-run.pl
5 conflicts encountered.

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

merged with trunk, tests use ER_ symbol instead of number

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

Subscribers

People subscribed via source and target branches