Below is the list of changes that have just been committed into a local
5.1 repository of antony. When antony does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
ChangeSet@stripped, 2007-07-20 11:35:19-07:00, acurtis@stripped +5 -0
Bug#29875
"Disable transaction support in Federated storage engine"
Minimal patch to disable Federated's transactions until they can be fixed.
mysql-test/r/federated.result@stripped, 2007-07-20 11:35:16-07:00, acurtis@stripped +22 -0
verify that transactions are disabled
mysql-test/t/disabled.def@stripped, 2007-07-20 11:35:16-07:00, acurtis@stripped +1 -0
bug29875
disable federated_transactions test until Bug#29523 is resolved.
mysql-test/t/federated.test@stripped, 2007-07-20 11:35:16-07:00, acurtis@stripped +26 -0
verify that transactions are disabled
storage/federated/ha_federated.cc@stripped, 2007-07-20 11:35:16-07:00, acurtis@stripped
+12 -0
bug29875
Disable support for transactions until fixed.
storage/federated/ha_federated.h@stripped, 2007-07-20 11:35:16-07:00, acurtis@stripped +1
-0
bug29875
Disable support for transactions until fixed.
diff -Nrup a/mysql-test/r/federated.result b/mysql-test/r/federated.result
--- a/mysql-test/r/federated.result 2007-06-30 01:18:48 -07:00
+++ b/mysql-test/r/federated.result 2007-07-20 11:35:16 -07:00
@@ -1882,6 +1882,28 @@ a b
2 Curly
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@stripped: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 DATABASE IF EXISTS federated;
DROP TABLE IF EXISTS federated.t1;
diff -Nrup a/mysql-test/t/disabled.def b/mysql-test/t/disabled.def
--- a/mysql-test/t/disabled.def 2007-07-17 01:20:30 -07:00
+++ b/mysql-test/t/disabled.def 2007-07-20 11:35:16 -07:00
@@ -25,4 +25,5 @@ ctype_big5 : BUG#26711 200
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_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
diff -Nrup a/mysql-test/t/federated.test b/mysql-test/t/federated.test
--- a/mysql-test/t/federated.test 2007-06-30 01:18:48 -07:00
+++ b/mysql-test/t/federated.test 2007-07-20 11:35:16 -07:00
@@ -1683,4 +1683,30 @@ connection slave;
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@stripped:$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;
diff -Nrup a/storage/federated/ha_federated.cc b/storage/federated/ha_federated.cc
--- a/storage/federated/ha_federated.cc 2007-06-30 09:17:08 -07:00
+++ b/storage/federated/ha_federated.cc 2007-07-20 11:35:16 -07:00
@@ -449,6 +449,13 @@ int federated_db_init(void *p)
federated_hton->create= federated_create_handler;
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))
goto error;
if (!hash_init(&federated_open_tables, &my_charset_bin, 32, 0, 0,
@@ -3163,6 +3170,10 @@ int ha_federated::external_lock(THD *thd
ha_federated *trx= (ha_federated *)thd->ha_data[ht->slot];
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)
{
DBUG_PRINT("info",("federated not lock F_UNLCK"));
@@ -3216,6 +3227,7 @@ int ha_federated::external_lock(THD *thd
}
}
}
+#endif /* XXX_SUPERCEDED_BY_WL2952 */
DBUG_RETURN(0);
}
diff -Nrup a/storage/federated/ha_federated.h b/storage/federated/ha_federated.h
--- a/storage/federated/ha_federated.h 2007-06-30 09:17:08 -07:00
+++ b/storage/federated/ha_federated.h 2007-07-20 11:35:16 -07:00
@@ -141,6 +141,7 @@ public:
| HA_REC_NOT_IN_SEQ | HA_AUTO_PART_KEY | HA_CAN_INDEX_BLOBS |
HA_BINLOG_ROW_CAPABLE | HA_BINLOG_STMT_CAPABLE |
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);
}
/*
| Thread |
|---|
| • bk commit into 5.1 tree (acurtis:1.2555) BUG#29875 | antony | 20 Jul |