Bug#29875

  "Disable transaction support in Federated storage engine"
  Minimal patch to disable Federated's transactions until they can be fixed.
parent cb995365
...@@ -1882,6 +1882,28 @@ a b ...@@ -1882,6 +1882,28 @@ a b
2 Curly 2 Curly
drop table federated.t1; drop table federated.t1;
drop table federated.t1; drop table federated.t1;
CREATE TABLE federated.t1 (a INT PRIMARY KEY) DEFAULT CHARSET=utf8;
CREATE TABLE federated.t1 (a INT PRIMARY KEY)
ENGINE=FEDERATED
CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1'
DEFAULT CHARSET=utf8;
SELECT transactions FROM information_schema.engines WHERE engine="FEDERATED";
transactions
NO
INSERT INTO federated.t1 VALUES (1);
SET autocommit=0;
INSERT INTO federated.t1 VALUES (2);
ROLLBACK;
Warnings:
Warning 1196 Some non-transactional changed tables couldn't be rolled back
SET autocommit=1;
SELECT * FROM federated.t1;
a
1
2
DROP TABLE federated.t1;
DROP TABLE federated.t1;
End of 5.1 tests
DROP TABLE IF EXISTS federated.t1; DROP TABLE IF EXISTS federated.t1;
DROP DATABASE IF EXISTS federated; DROP DATABASE IF EXISTS federated;
DROP TABLE IF EXISTS federated.t1; DROP TABLE IF EXISTS federated.t1;
......
...@@ -25,4 +25,5 @@ ctype_big5 : BUG#26711 2007-06-21 Lars Test has never worked on Do ...@@ -25,4 +25,5 @@ ctype_big5 : BUG#26711 2007-06-21 Lars Test has never worked on Do
mysql_upgrade : Bug#28560 test links to /usr/local/mysql/lib libraries, causes non-determinism and failures on ABI breakage mysql_upgrade : Bug#28560 test links to /usr/local/mysql/lib libraries, causes non-determinism and failures on ABI breakage
federated_innodb : Bug#29522 failed assertion in binlog_close_connection() federated_innodb : Bug#29522 failed assertion in binlog_close_connection()
federated_transactions : Bug#29523 Transactions do not work
lowercase_table3 : Bug#29839 2007-07-17 ingo Cannot find table test/T1 from the internal data dictionary lowercase_table3 : Bug#29839 2007-07-17 ingo Cannot find table test/T1 from the internal data dictionary
...@@ -1683,4 +1683,30 @@ connection slave; ...@@ -1683,4 +1683,30 @@ connection slave;
drop table federated.t1; drop table federated.t1;
#
# BUG#29875 Disable support for transactions
#
connection slave;
CREATE TABLE federated.t1 (a INT PRIMARY KEY) DEFAULT CHARSET=utf8;
connection master;
--replace_result $SLAVE_MYPORT SLAVE_PORT
eval CREATE TABLE federated.t1 (a INT PRIMARY KEY)
ENGINE=FEDERATED
CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1'
DEFAULT CHARSET=utf8;
SELECT transactions FROM information_schema.engines WHERE engine="FEDERATED";
INSERT INTO federated.t1 VALUES (1);
SET autocommit=0;
INSERT INTO federated.t1 VALUES (2);
ROLLBACK;
SET autocommit=1;
SELECT * FROM federated.t1;
DROP TABLE federated.t1;
connection slave;
DROP TABLE federated.t1;
--echo End of 5.1 tests
source include/federated_cleanup.inc; source include/federated_cleanup.inc;
...@@ -449,6 +449,13 @@ int federated_db_init(void *p) ...@@ -449,6 +449,13 @@ int federated_db_init(void *p)
federated_hton->create= federated_create_handler; federated_hton->create= federated_create_handler;
federated_hton->flags= HTON_ALTER_NOT_SUPPORTED | HTON_NO_PARTITION; federated_hton->flags= HTON_ALTER_NOT_SUPPORTED | HTON_NO_PARTITION;
/*
Support for transactions disabled until WL#2952 fixes it.
We do it like this to avoid "defined but not used" compiler warnings.
*/
federated_hton->commit= 0;
federated_hton->rollback= 0;
if (pthread_mutex_init(&federated_mutex, MY_MUTEX_INIT_FAST)) if (pthread_mutex_init(&federated_mutex, MY_MUTEX_INIT_FAST))
goto error; goto error;
if (!hash_init(&federated_open_tables, &my_charset_bin, 32, 0, 0, if (!hash_init(&federated_open_tables, &my_charset_bin, 32, 0, 0,
...@@ -3163,6 +3170,10 @@ int ha_federated::external_lock(THD *thd, int lock_type) ...@@ -3163,6 +3170,10 @@ int ha_federated::external_lock(THD *thd, int lock_type)
ha_federated *trx= (ha_federated *)thd->ha_data[ht->slot]; ha_federated *trx= (ha_federated *)thd->ha_data[ht->slot];
DBUG_ENTER("ha_federated::external_lock"); DBUG_ENTER("ha_federated::external_lock");
/*
Support for transactions disabled until WL#2952 fixes it.
*/
#ifdef XXX_SUPERCEDED_BY_WL2952
if (lock_type != F_UNLCK) if (lock_type != F_UNLCK)
{ {
DBUG_PRINT("info",("federated not lock F_UNLCK")); DBUG_PRINT("info",("federated not lock F_UNLCK"));
...@@ -3216,6 +3227,7 @@ int ha_federated::external_lock(THD *thd, int lock_type) ...@@ -3216,6 +3227,7 @@ int ha_federated::external_lock(THD *thd, int lock_type)
} }
} }
} }
#endif /* XXX_SUPERCEDED_BY_WL2952 */
DBUG_RETURN(0); DBUG_RETURN(0);
} }
......
...@@ -141,6 +141,7 @@ public: ...@@ -141,6 +141,7 @@ public:
| HA_REC_NOT_IN_SEQ | HA_AUTO_PART_KEY | HA_CAN_INDEX_BLOBS | | HA_REC_NOT_IN_SEQ | HA_AUTO_PART_KEY | HA_CAN_INDEX_BLOBS |
HA_BINLOG_ROW_CAPABLE | HA_BINLOG_STMT_CAPABLE | HA_BINLOG_ROW_CAPABLE | HA_BINLOG_STMT_CAPABLE |
HA_NO_PREFIX_CHAR_KEYS | HA_PRIMARY_KEY_REQUIRED_FOR_DELETE | HA_NO_PREFIX_CHAR_KEYS | HA_PRIMARY_KEY_REQUIRED_FOR_DELETE |
HA_NO_TRANSACTIONS /* until fixed by WL#2952 */ |
HA_PARTIAL_COLUMN_READ | HA_NULL_IN_KEY); HA_PARTIAL_COLUMN_READ | HA_NULL_IN_KEY);
} }
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment