~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to tests/t/insert_select.test

* Completes the blueprint for splitting the XA Resource Manager
  API from the storage engine API:

We add a new plugin::XaResourceManager abstract interface class
which exposes the X/Open XA distributed transaction protocol for
resource managers.

We add a new plugin::MonitoredInTransaction base class from
which all plugins that need monitored by Drizzle's transaction
manager (drizzled::TransactionServices component) derive.

All plugin::StorageEngine's now derive from plugin::MonitoredInTransaction
since all storage engines a monitored by the transaction manager
and the Session keeps a "slot" available for keeping the engine's
per-session data state.  In a future patch, the transaction log's
XaApplier plugin will also derive from MonitoredInTransaction, as
the transaction log, in XA mode, is also monitored by Drizzle's
transaction manager and automatically enlisted in XA transactions.

* Updates all documentation in /drizzled/transaction_services.cc
  to accurately reflect Drizzle's new transaction management
  process and explicit transaction and statement boundaries.

* Kills off dead code:

  binlog_format_names
  ha_init()
  total_ha, total_ha_2pc (no longer necessary, as the above-mentioned
  abstract base classes provide all of this functionality)
  StorageEngine::slot (now plugin::MonitoredInTransaction::getId())
  TransactionalStorageEngine::two_phase_commit (same as above)

Show diffs side-by-side

added added

removed removed

Lines of Context:
87
87
select * from t1;
88
88
insert into t2 select * from t1 as t2;
89
89
select * from t1;
90
 
insert into t1 select t2.a from t1,t2 where t1.a > 0;
 
90
insert into t1 select t2.a from t1,t2;
91
91
select * from t1;
92
 
--error ER_NONUNIQ_TABLE
 
92
--error 1066
93
93
insert into t1 select * from t1,t1;
94
94
drop table t1,t2;
95
95
 
194
194
insert into t1 select t2.a from t2 group by t2.a on duplicate key update a= a + 10;
195
195
 
196
196
#Some error cases
197
 
--error ER_NON_UNIQ_ERROR
 
197
--error 1052
198
198
insert into t1 select t2.a from t2 on duplicate key update a= a + t2.b;
199
 
--error ER_BAD_FIELD_ERROR
 
199
--error 1054
200
200
insert into t1 select t2.a from t2 on duplicate key update t2.a= a + t2.b;
201
 
--error ER_BAD_FIELD_ERROR
 
201
--error 1054
202
202
insert into t1 select t2.a from t2 group by t2.a on duplicate key update a= t1.a + t2.b;
203
203
drop table t1,t2,t3;
204
204
 
218
218
create table t1(x int, y int);
219
219
create table t2(x int, z int);
220
220
insert into t1(x,y) select x,z from t2 on duplicate key update x=values(x);
221
 
--error ER_BAD_FIELD_ERROR
 
221
--error 1054
222
222
insert into t1(x,y) select x,z from t2 on duplicate key update x=values(z);
223
 
--error ER_BAD_FIELD_ERROR
 
223
--error 1054
224
224
insert into t1(x,y) select x,z from t2 on duplicate key update x=values(t2.x);
225
225
drop table t1,t2; 
226
226