2820 Christopher Powers 2008-09-10
Bug #39350 Falcon: Releasing deferred indexes causes crash
Fixed regression to last commit that prevented deferred indexes from being released.
modified:
storage/falcon/Transaction.cpp
2819 John H. Embretsen 2008-09-10 [merge]
Merging http://lists.mysql.com/commits/53704 into updated falcon-team branch.
"Fix test segment for ALTER ONLINE ADD UNIQUE INDEX in falcon_online_index.test."
modified:
mysql-test/suite/falcon/r/falcon_online_index.result
mysql-test/suite/falcon/t/falcon_online_index.test
2818 Hakan Kuecuekyilmaz 2008-09-10 [merge]
Merge.
modified:
storage/falcon/ha_falcon.cpp
2817 Hakan Kuecuekyilmaz 2008-09-10 [merge]
Merge.
removed:
mysql-test/suite/falcon/r/falcon_select_excerpt.result
mysql-test/suite/falcon/t/falcon_select_excerpt.test
added:
mysql-test/suite/falcon/r/falcon_index_datatypes.result
mysql-test/suite/falcon/r/falcon_online_index.result
mysql-test/suite/falcon/t/falcon_index_datatypes.test
mysql-test/suite/falcon/t/falcon_online_index.test
modified:
storage/falcon/Cache.cpp
storage/falcon/Configuration.cpp
storage/falcon/DeferredIndex.cpp
storage/falcon/StorageTable.cpp
storage/falcon/StorageTableShare.cpp
storage/falcon/StorageTableShare.h
storage/falcon/Transaction.cpp
storage/falcon/Transaction.h
storage/falcon/ha_falcon.cpp
storage/falcon/ha_falcon.h
=== renamed file 'mysql-test/suite/falcon_team/r/falcon_bug_22189.result' =>
'mysql-test/suite/falcon/r/falcon_bug_22189.result'
--- a/mysql-test/suite/falcon_team/r/falcon_bug_22189.result 2008-04-28 11:21:52 +0000
+++ b/mysql-test/suite/falcon/r/falcon_bug_22189.result 2008-09-09 08:30:18 +0000
@@ -33,11 +33,12 @@ x1 x2
1 1
# Switch to connection conn1
UPDATE x1 SET x1 = 0, x2 = 5;
+ERROR 23000: Duplicate entry '0' for key 'PRIMARY'
INSERT INTO x1 VALUES (0,6);
+ERROR 23000: Duplicate entry '0' for key 'PRIMARY'
# Switch to connection default
ROLLBACK;
# Switch to connection conn1
-ERROR 23000: Duplicate entry '0' for key 'PRIMARY'
INSERT INTO x1 VALUES (0,6);
ERROR 23000: Duplicate entry '0' for key 'PRIMARY'
INSERT INTO x1 VALUES (0,6);
=== added file 'mysql-test/suite/falcon/r/falcon_bug_22207-big.result'
--- a/mysql-test/suite/falcon/r/falcon_bug_22207-big.result 1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/falcon/r/falcon_bug_22207-big.result 2008-09-09 08:30:18 +0000
@@ -0,0 +1,150 @@
+*** Bug #22207 ***
+SET @@storage_engine = 'Falcon';
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 (c1 varchar(50), c2 int, c3 char(1));
+INSERT INTO t1 VALUES (repeat('A', 50), 0, 'A');
+INSERT INTO t1 VALUES (repeat('B', 50), 0, 'B');
+INSERT INTO t1 VALUES (repeat('C', 50), 0, 'C');
+INSERT INTO t1 VALUES (repeat('D', 50), 0, 'D');
+INSERT INTO t1 VALUES (repeat('E', 50), 0, 'E');
+INSERT INTO t1 VALUES (repeat('F', 50), 0, 'F');
+INSERT INTO t1 VALUES (repeat('G', 50), 0, 'G');
+INSERT INTO t1 VALUES (repeat('H', 50), 0, 'H');
+INSERT INTO t1 VALUES (repeat('I', 50), 0, 'I');
+INSERT INTO t1 VALUES (repeat('J', 50), 0, 'J');
+INSERT INTO t1 VALUES (repeat('K', 50), 0, 'K');
+COMMIT;
+SELECT c1 from t1;
+c1
+150000____AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+150000____BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
+150000____CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+150000____DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
+150000____EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
+150000____FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+150000____GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+150000____HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
+150000____IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
+150000____JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
+150000____KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
+SELECT c1 from t1;
+c1
+300000____AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+300000____BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
+300000____CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+300000____DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
+300000____EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
+300000____FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+300000____GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+300000____HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
+300000____IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
+300000____JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
+300000____KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
+SELECT c1 from t1;
+c1
+450000____AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+450000____BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
+450000____CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+450000____DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
+450000____EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
+450000____FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+450000____GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+450000____HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
+450000____IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
+450000____JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
+450000____KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
+SELECT c1 from t1;
+c1
+600000____AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+600000____BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
+600000____CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+600000____DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
+600000____EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
+600000____FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+600000____GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+600000____HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
+600000____IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
+600000____JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
+600000____KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
+SELECT c1 from t1;
+c1
+750000____AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+750000____BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
+750000____CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+750000____DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
+750000____EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
+750000____FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+750000____GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+750000____HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
+750000____IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
+750000____JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
+750000____KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
+SELECT c1 from t1;
+c1
+900000____AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+900000____BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
+900000____CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+900000____DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
+900000____EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
+900000____FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+900000____GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+900000____HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
+900000____IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
+900000____JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
+900000____KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
+SELECT c1 from t1;
+c1
+1050000___AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+1050000___BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
+1050000___CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+1050000___DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
+1050000___EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
+1050000___FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+1050000___GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+1050000___HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
+1050000___IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
+1050000___JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
+1050000___KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
+SELECT c1 from t1;
+c1
+1200000___AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+1200000___BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
+1200000___CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+1200000___DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
+1200000___EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
+1200000___FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+1200000___GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+1200000___HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
+1200000___IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
+1200000___JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
+1200000___KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
+SELECT c1 from t1;
+c1
+1350000___AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+1350000___BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
+1350000___CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+1350000___DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
+1350000___EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
+1350000___FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+1350000___GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+1350000___HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
+1350000___IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
+1350000___JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
+1350000___KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
+SELECT c1 from t1;
+c1
+1500000___AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+1500000___BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
+1500000___CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+1500000___DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
+1500000___EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
+1500000___FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+1500000___GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+1500000___HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
+1500000___IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
+1500000___JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
+1500000___KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
+SELECT count(*) FROM t1;
+count(*)
+11
+DROP TABLE t1;
=== renamed file 'mysql-test/suite/falcon_team/r/falcon_bug_22207.result' =>
'mysql-test/suite/falcon/r/falcon_bug_22207.result'
--- a/mysql-test/suite/falcon_team/r/falcon_bug_22207.result 2008-04-20 00:05:17 +0000
+++ b/mysql-test/suite/falcon/r/falcon_bug_22207.result 2008-09-09 08:30:18 +0000
@@ -1,4 +1,5 @@
-SET STORAGE_ENGINE = 'Falcon';
+*** Bug #22207 ***
+SET @@storage_engine = 'Falcon';
DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (c1 varchar(50), c2 int, c3 char(1));
INSERT INTO t1 VALUES (repeat('A', 50), 0, 'A');
@@ -7,52 +8,55 @@ INSERT INTO t1 VALUES (repeat('C', 50),
COMMIT;
SELECT c1 from t1;
c1
+2500______AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+2500______BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
+2500______CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+SELECT c1 from t1;
+c1
5000______AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
5000______BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
5000______CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
SELECT c1 from t1;
c1
+7500______AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+7500______BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
+7500______CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+SELECT c1 from t1;
+c1
10000_____AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
10000_____BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
10000_____CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
SELECT c1 from t1;
c1
+12500_____AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+12500_____BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
+12500_____CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+SELECT c1 from t1;
+c1
15000_____AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
15000_____BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
15000_____CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
SELECT c1 from t1;
c1
+17500_____AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+17500_____BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
+17500_____CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+SELECT c1 from t1;
+c1
20000_____AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
20000_____BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
20000_____CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
SELECT c1 from t1;
c1
+22500_____AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+22500_____BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
+22500_____CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+SELECT c1 from t1;
+c1
25000_____AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
25000_____BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
25000_____CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-SELECT c1 from t1;
-c1
-30000_____AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-30000_____BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
-30000_____CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-SELECT c1 from t1;
-c1
-35000_____AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-35000_____BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
-35000_____CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-SELECT c1 from t1;
-c1
-40000_____AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-40000_____BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
-40000_____CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-SELECT c1 from t1;
-c1
-45000_____AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-45000_____BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
-45000_____CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-SELECT c1 from t1;
-c1
-50000_____AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-50000_____BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
-50000_____CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+SELECT count(*) FROM t1;
+count(*)
+3
DROP TABLE t1;
=== modified file 'mysql-test/suite/falcon/r/falcon_bug_22972.result'
--- a/mysql-test/suite/falcon/r/falcon_bug_22972.result 2008-07-15 00:06:43 +0000
+++ b/mysql-test/suite/falcon/r/falcon_bug_22972.result 2008-09-09 08:30:18 +0000
@@ -1,10 +1,21 @@
-CREATE TABLE t1(a INT) ENGINE=Falcon;
+*** Bug #22972 ***
+SET @@storage_engine = 'Falcon';
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1(a int);
+# Establish connection conn1 (root)
+# Switch to connection conn1
START TRANSACTION;
INSERT INTO t1 VALUES(1);
+# Switch to connection default
DROP TABLE t1;
ERROR 42S02: Unknown table 't1'
SHOW WARNINGS;
Level Code Message
Warning 178 Can't execute the given command because you have active locked tables or an
active transaction
+# Switch to connection conn1
COMMIT;
+SELECT count(*) FROM t1;
+count(*)
+1
+# Switch to connection default
DROP TABLE t1;
=== renamed file 'mysql-test/suite/falcon_team/r/falcon_bug_24024.result' =>
'mysql-test/suite/falcon/r/falcon_bug_24024.result'
--- a/mysql-test/suite/falcon_team/r/falcon_bug_24024.result 2008-04-20 00:05:17 +0000
+++ b/mysql-test/suite/falcon/r/falcon_bug_24024.result 2008-09-09 14:59:40 +0000
@@ -1,23 +1,31 @@
*** Bug #24024 ***
-SET SESSION STORAGE_ENGINE = Falcon;
+SET @@storage_engine = 'Falcon';
DROP TABLE IF EXISTS t1;
-CREATE TABLE t1(a INT NOT NULL, b INT, primary key(a));
+CREATE TABLE t1(a int, b int, primary key(a));
INSERT INTO t1(a) VALUES (1);
COMMIT;
-SET AUTOCOMMIT = 0;
+# Establish connection conn1 (user=root)
+# Switch to connection default
+SET @@autocommit = 0;
UPDATE t1 SET b = 5 WHERE a = 1;
-# Establish session con1 (user=root)
+# Switch to connection conn1
INSERT INTO t1(a) VALUES(7);
COMMIT;
SELECT * FROM t1;
a b
1 NULL
7 NULL
+!!! Error message is total crap!
+!!! Something like "Cannot drop locked table" or similar would be fine,
+!!! But never the misleading ERROR 42S02: Unknown table 't1'.
DROP TABLE t1;
-!!! Error message has to be decided.
-!!! Something like "Cannot drop locked table" or similar would be fine.
-!!! But never the misleading ERROR 42S02: Unknown table 't1'
-COMMIT;
-# Switch to session default and disconnect session con1
+ERROR 42S02: Unknown table 't1'
+SHOW WARNINGS;
+Level Code Message
+Warning 178 Can't execute the given command because you have active locked tables or an
active transaction
+SELECT count(*) FROM t1;
+count(*)
+2
+# Switch to connection default
COMMIT;
DROP TABLE t1;
=== modified file 'mysql-test/suite/falcon/r/falcon_online_index.result'
--- a/mysql-test/suite/falcon/r/falcon_online_index.result 2008-09-08 11:23:10 +0000
+++ b/mysql-test/suite/falcon/r/falcon_online_index.result 2008-09-10 15:08:56 +0000
@@ -141,10 +141,10 @@ SHOW INDEXES FROM t1;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_Comment
ALTER TABLE t1 ADD PRIMARY KEY (a);
#-------- Test: UNIQUE --------#
-ALTER ONLINE TABLE t2 ADD INDEX ix_unique_c (c);
+ALTER ONLINE TABLE t2 ADD UNIQUE INDEX ix_unique_c (c);
EXPLAIN SELECT * FROM t2 WHERE c < 25 AND c > 20 ORDER BY c;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t2 range ix_unique_c ix_unique_c 5 NULL 11 Using where; Using filesort
+1 SIMPLE t2 range ix_unique_c ix_unique_c 5 NULL 1 Using where; Using filesort
SELECT * FROM t2 WHERE c < 25 AND c > 20 ORDER BY c;
a b c d
20 40 21 SomeString 20 for testing
@@ -154,14 +154,17 @@ a b c d
SHOW INDEXES FROM t2;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_Comment
t2 0 PRIMARY 1 a NULL 16 NULL NULL BTREE
-t2 1 ix_unique_c 1 c NULL 16 NULL NULL YES BTREE
+t2 0 ix_unique_c 1 c NULL 16 NULL NULL YES BTREE
DESCRIBE t2;
Field Type Null Key Default Extra
a int(11) NO PRI NULL
b int(11) YES NULL
-c int(11) YES MUL NULL
+c int(11) YES UNI NULL
d varchar(65) YES NULL
DROP ONLINE INDEX ix_unique_c ON t2;
+SHOW INDEXES FROM t2;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_Comment
+t2 0 PRIMARY 1 a NULL 16 NULL NULL BTREE
#-------- Test: DESC --------#
ALTER ONLINE TABLE t3 ADD INDEX ix_desc_b (b DESC);
ALTER ONLINE TABLE t3 ADD INDEX ix_asc_b (b ASC);
=== modified file 'mysql-test/suite/falcon/t/disabled.def'
--- a/mysql-test/suite/falcon/t/disabled.def 2008-08-11 13:22:53 +0000
+++ b/mysql-test/suite/falcon/t/disabled.def 2008-09-09 08:30:18 +0000
@@ -10,5 +10,5 @@
#
##############################################################################
-falcon_bug_28095_I : Bug#xxxxx 2008-04-22 hakank Disabled until soft restart is in main
tree
-falcon_bug_28095_II : Bug#xxxxx 2008-03-22 hakank Disabled until soft restart is in main
tree
+falcon_bug_28095_I : Bug#39205 2008-09-09 hakank Disabled until soft restart is in main
tree
+falcon_bug_28095_II : Bug#39205 2008-09-09 hakank Disabled until soft restart is in main
tree
=== renamed file 'mysql-test/suite/falcon_team/t/falcon_bug_22189.test' =>
'mysql-test/suite/falcon/t/falcon_bug_22189.test'
--- a/mysql-test/suite/falcon_team/t/falcon_bug_22189.test 2008-04-28 11:21:52 +0000
+++ b/mysql-test/suite/falcon/t/falcon_bug_22189.test 2008-09-09 08:30:18 +0000
@@ -68,8 +68,10 @@ SELECT * FROM x1;
--echo # Switch to connection conn1
connection conn1;
---send UPDATE x1 SET x1 = 0, x2 = 5
---send INSERT INTO x1 VALUES (0,6)
+--error ER_DUP_ENTRY
+UPDATE x1 SET x1 = 0, x2 = 5;
+--error ER_DUP_ENTRY
+INSERT INTO x1 VALUES (0,6);
--echo # Switch to connection default
connection default;
@@ -78,8 +80,6 @@ ROLLBACK;
--echo # Switch to connection conn1
connection conn1;
--error ER_DUP_ENTRY
---reap
---error ER_DUP_ENTRY
INSERT INTO x1 VALUES (0,6);
--error ER_DUP_ENTRY
INSERT INTO x1 VALUES (0,6);
=== added file 'mysql-test/suite/falcon/t/falcon_bug_22207-big.test'
--- a/mysql-test/suite/falcon/t/falcon_bug_22207-big.test 1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/falcon/t/falcon_bug_22207-big.test 2008-09-09 08:30:18 +0000
@@ -0,0 +1,78 @@
+--source include/have_falcon.inc
+--source include/big_test.inc
+
+#
+# Bug #22207: falcon_record_cache_memory_leak2.test leads to crash sometimes.
+#
+# Record cache memory leak test inspired by Kevin.
+#
+# Note: Big test variant
+# For Mantis bug #257, set the inner loop to 10 and the middle loop to 10,000.
+# We set the middle loop to 15,000 for this --big_test version.
+#
+--echo *** Bug #22207 ***
+
+# ----------------------------------------------------- #
+# --- Initialisation --- #
+# ----------------------------------------------------- #
+let $engine = 'Falcon';
+eval SET @@storage_engine = $engine;
+
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+
+CREATE TABLE t1 (c1 varchar(50), c2 int, c3 char(1));
+INSERT INTO t1 VALUES (repeat('A', 50), 0, 'A');
+INSERT INTO t1 VALUES (repeat('B', 50), 0, 'B');
+INSERT INTO t1 VALUES (repeat('C', 50), 0, 'C');
+INSERT INTO t1 VALUES (repeat('D', 50), 0, 'D');
+INSERT INTO t1 VALUES (repeat('E', 50), 0, 'E');
+INSERT INTO t1 VALUES (repeat('F', 50), 0, 'F');
+INSERT INTO t1 VALUES (repeat('G', 50), 0, 'G');
+INSERT INTO t1 VALUES (repeat('H', 50), 0, 'H');
+INSERT INTO t1 VALUES (repeat('I', 50), 0, 'I');
+INSERT INTO t1 VALUES (repeat('J', 50), 0, 'J');
+INSERT INTO t1 VALUES (repeat('K', 50), 0, 'K');
+COMMIT;
+
+# ----------------------------------------------------- #
+# --- Test --- #
+# ----------------------------------------------------- #
+# During this series of updates, there should be no increase in memory
+# since each previous record version should be freed once it is replaced.
+
+# Outer loop controls how many SELECTs are done.
+let $i= 10;
+while ($i)
+{
+ # Middle loop controls how often a COMMIT is done.
+ --disable_query_log
+ let $j= 15000;
+ while ($j)
+ {
+ # Inner loop controls how many UPDATES are done.
+ BEGIN;
+ let $k= 10;
+ while ($k)
+ {
+ UPDATE t1 SET c2 = c2 + 1, c1 = concat(rpad(conv(c2,10,10),10,'_'),
repeat(c3, 40));
+ dec $k;
+ }
+ dec $j;
+ COMMIT;
+ }
+ --enable_query_log
+ SELECT c1 from t1;
+ dec $i;
+}
+
+# ----------------------------------------------------- #
+# --- Check --- #
+# ----------------------------------------------------- #
+SELECT count(*) FROM t1;
+
+# ----------------------------------------------------- #
+# --- Final cleanup --- #
+# ----------------------------------------------------- #
+DROP TABLE t1;
=== renamed file 'mysql-test/suite/falcon_team/t/falcon_bug_22207.test' =>
'mysql-test/suite/falcon/t/falcon_bug_22207.test'
--- a/mysql-test/suite/falcon_team/t/falcon_bug_22207.test 2008-04-20 00:05:17 +0000
+++ b/mysql-test/suite/falcon/t/falcon_bug_22207.test 2008-09-09 08:30:18 +0000
@@ -1,12 +1,22 @@
--source include/have_falcon.inc
+
+#
+# Bug #22207: falcon_record_cache_memory_leak2.test leads to crash sometimes.
#
# Record cache memory leak test inspired by Kevin.
#
# Note: Do not run in ramdisk!
# For Mantis bug #257, set the inner loop to 10 and the middle loop to 10,000.
-# We set the middle loop to 500 to cope with run time on various Pushbuild machines.
+# We set the middle loop to 250 to cope with run time on various Pushbuild machines.
#
-SET STORAGE_ENGINE = 'Falcon';
+--echo *** Bug #22207 ***
+
+# ----------------------------------------------------- #
+# --- Initialisation --- #
+# ----------------------------------------------------- #
+let $engine = 'Falcon';
+eval SET @@storage_engine = $engine;
+
--disable_warnings
DROP TABLE IF EXISTS t1;
--enable_warnings
@@ -23,6 +33,9 @@ INSERT INTO t1 VALUES (repeat('C', 50),
#INSERT INTO t1 VALUES (repeat('I', 50), 0, 'I');
COMMIT;
+# ----------------------------------------------------- #
+# --- Test --- #
+# ----------------------------------------------------- #
# During this series of updates, there should be no increase in memory
# since each previous record version should be freed once it is replaced.
@@ -30,9 +43,9 @@ COMMIT;
let $i= 10;
while ($i)
{
- # Next loop controls how often a COMMIT is done
+ # Middle loop controls how often a COMMIT is done.
--disable_query_log
- let $j= 500;
+ let $j= 250;
while ($j)
{
# Inner loop controls how many UPDATES are done.
@@ -51,6 +64,12 @@ while ($i)
dec $i;
}
+# ----------------------------------------------------- #
+# --- Check --- #
+# ----------------------------------------------------- #
+SELECT count(*) FROM t1;
-# Final cleanup.
+# ----------------------------------------------------- #
+# --- Final cleanup --- #
+# ----------------------------------------------------- #
DROP TABLE t1;
=== modified file 'mysql-test/suite/falcon/t/falcon_bug_22972.test'
--- a/mysql-test/suite/falcon/t/falcon_bug_22972.test 2007-11-28 14:07:24 +0000
+++ b/mysql-test/suite/falcon/t/falcon_bug_22972.test 2008-09-09 08:30:18 +0000
@@ -1,15 +1,51 @@
--source include/have_falcon.inc
-CREATE TABLE t1(a INT) ENGINE=Falcon;
-connect (con1,localhost,root,,);
-connection con1;
+
+#
+# Bug #22972: Falcon: Partitioned table with pending transaction leads to strange error
+#
+--echo *** Bug #22972 ***
+
+# ----------------------------------------------------- #
+# --- Initialisation --- #
+# ----------------------------------------------------- #
+let $engine = 'Falcon';
+eval SET @@storage_engine = $engine;
+
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+
+CREATE TABLE t1(a int);
+
+--echo # Establish connection conn1 (root)
+connect (conn1,localhost,root,,);
+
+# ----------------------------------------------------- #
+# --- Test --- #
+# ----------------------------------------------------- #
+--echo # Switch to connection conn1
START TRANSACTION;
INSERT INTO t1 VALUES(1);
+
+--echo # Switch to connection default
connection default;
---error 1051
+--error ER_BAD_TABLE_ERROR
DROP TABLE t1;
SHOW WARNINGS;
-connection con1;
+
+--echo # Switch to connection conn1
+connection conn1;
COMMIT;
+
+# ----------------------------------------------------- #
+# --- Check --- #
+# ----------------------------------------------------- #
+SELECT count(*) FROM t1;
+
+# ----------------------------------------------------- #
+# --- Final cleanup --- #
+# ----------------------------------------------------- #
+--echo # Switch to connection default
connection default;
-disconnect con1;
+disconnect conn1;
DROP TABLE t1;
=== renamed file 'mysql-test/suite/falcon_team/t/falcon_bug_24024.test' =>
'mysql-test/suite/falcon/t/falcon_bug_24024.test'
--- a/mysql-test/suite/falcon_team/t/falcon_bug_24024.test 2008-04-20 00:05:17 +0000
+++ b/mysql-test/suite/falcon/t/falcon_bug_24024.test 2008-09-09 14:59:40 +0000
@@ -1,36 +1,61 @@
+--source include/have_falcon.inc
+
#
-# Bug#24024 wrong error message when drop table (used by pending transaction) fails
+# Bug #24024: wrong error message when drop table (used by pending transaction) fails
#
# This test is a derivate of a subtestcase in mix2.inc.
# Therefore please delete this test when mix2_falcon is pushed.
#
-
--echo *** Bug #24024 ***
-
---source include/have_falcon.inc
-SET SESSION STORAGE_ENGINE = Falcon;
+# ----------------------------------------------------- #
+# --- Initialisation --- #
+# ----------------------------------------------------- #
+let $engine = 'Falcon';
+eval SET @@storage_engine = $engine;
--disable_warnings
DROP TABLE IF EXISTS t1;
--enable_warnings
-CREATE TABLE t1(a INT NOT NULL, b INT, primary key(a));
+
+CREATE TABLE t1(a int, b int, primary key(a));
INSERT INTO t1(a) VALUES (1);
COMMIT;
-SET AUTOCOMMIT = 0;
+
+--echo # Establish connection conn1 (user=root)
+connect (conn1,localhost,root,,);
+
+# ----------------------------------------------------- #
+# --- Test --- #
+# ----------------------------------------------------- #
+--echo # Switch to connection default
+connection default;
+SET @@autocommit = 0;
UPDATE t1 SET b = 5 WHERE a = 1;
---echo # Establish session con1 (user=root)
-connect (con1,localhost,root);
+
+--echo # Switch to connection conn1
+connection conn1;
INSERT INTO t1(a) VALUES(7);
COMMIT;
SELECT * FROM t1;
---disable_abort_on_error
+--echo !!! Error message is total crap!
+--echo !!! Something like "Cannot drop locked table" or similar would be fine,
+--echo !!! But never the misleading ERROR 42S02: Unknown table 't1'.
+--error ER_BAD_TABLE_ERROR
DROP TABLE t1;
-COMMIT;
+SHOW WARNINGS;
---echo # Switch to session default and disconnect session con1
+# ----------------------------------------------------- #
+# --- Check --- #
+# ----------------------------------------------------- #
+SELECT count(*) FROM t1;
+
+# ----------------------------------------------------- #
+# --- Final cleanup --- #
+# ----------------------------------------------------- #
+--echo # Switch to connection default
connection default;
-disconnect con1;
+disconnect conn1;
COMMIT;
DROP TABLE t1;
=== modified file 'mysql-test/suite/falcon/t/falcon_online_index.test'
--- a/mysql-test/suite/falcon/t/falcon_online_index.test 2008-09-08 11:23:10 +0000
+++ b/mysql-test/suite/falcon/t/falcon_online_index.test 2008-09-10 15:08:56 +0000
@@ -214,12 +214,13 @@ ALTER TABLE t1 ADD PRIMARY KEY (a);
--echo #-------- Test: UNIQUE --------#
## Test adding UNIQUE index
-ALTER ONLINE TABLE t2 ADD INDEX ix_unique_c (c);
+ALTER ONLINE TABLE t2 ADD UNIQUE INDEX ix_unique_c (c);
EXPLAIN SELECT * FROM t2 WHERE c < 25 AND c > 20 ORDER BY c;
SELECT * FROM t2 WHERE c < 25 AND c > 20 ORDER BY c;
SHOW INDEXES FROM t2;
DESCRIBE t2;
DROP ONLINE INDEX ix_unique_c ON t2;
+SHOW INDEXES FROM t2;
--echo #-------- Test: DESC --------#
=== modified file 'mysql-test/suite/falcon_team/r/falcon_bug_23945.result'
--- a/mysql-test/suite/falcon_team/r/falcon_bug_23945.result 2008-04-20 00:05:17 +0000
+++ b/mysql-test/suite/falcon_team/r/falcon_bug_23945.result 2008-09-09 08:30:18 +0000
@@ -1,14 +1,14 @@
*** Bug #23945 ***
-SET STORAGE_ENGINE = Falcon;
+SET @@storage_engine = 'Falcon';
DROP TABLE IF EXISTS t1;
-SET AUTOCOMMIT = 1;
+SET @@autocommit = 1;
CREATE TABLE t1 (PRIMARY KEY (a)) SELECT 1 AS a UNION ALL SELECT 1;
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
SELECT * FROM t1;
ERROR 42S02: Table 'test.t1' doesn't exist
DROP TABLE t1;
ERROR 42S02: Unknown table 't1'
-SET AUTOCOMMIT = 0;
+SET @@autocommit = 0;
CREATE TABLE t1 (PRIMARY KEY (a)) SELECT 1 AS a UNION ALL SELECT 1;
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
SELECT * FROM t1;
=== modified file 'mysql-test/suite/falcon_team/t/falcon_bug_23945.test'
--- a/mysql-test/suite/falcon_team/t/falcon_bug_23945.test 2008-04-20 00:05:17 +0000
+++ b/mysql-test/suite/falcon_team/t/falcon_bug_23945.test 2008-09-09 08:30:18 +0000
@@ -1,19 +1,25 @@
+--source include/have_falcon.inc
+
#
# Bug #23945: crash during drop table, AUTOCOMMIT=0, CREATE TABLE .. AS SELECT
#
--echo *** Bug #23945 ***
-
-# --source include/have_innodb.inc
-# SET STORAGE_ENGINE = InnoDB;
---source include/have_falcon.inc
-SET STORAGE_ENGINE = Falcon;
+# ----------------------------------------------------- #
+# --- Initialisation --- #
+# ----------------------------------------------------- #
+let $engine = 'Falcon';
+eval SET @@storage_engine = $engine;
--disable_warnings
DROP TABLE IF EXISTS t1;
--enable_warnings
-SET AUTOCOMMIT = 1;
+SET @@autocommit = 1;
+
+# ----------------------------------------------------- #
+# --- Test --- #
+# ----------------------------------------------------- #
--error ER_DUP_ENTRY
CREATE TABLE t1 (PRIMARY KEY (a)) SELECT 1 AS a UNION ALL SELECT 1;
--error ER_NO_SUCH_TABLE
@@ -21,7 +27,7 @@ SELECT * FROM t1;
--error ER_BAD_TABLE_ERROR
DROP TABLE t1;
-SET AUTOCOMMIT = 0;
+SET @@autocommit = 0;
--error ER_DUP_ENTRY
CREATE TABLE t1 (PRIMARY KEY (a)) SELECT 1 AS a UNION ALL SELECT 1;
--error ER_NO_SUCH_TABLE
@@ -29,3 +35,15 @@ SELECT * FROM t1;
# Here comes a server crash.
--error ER_BAD_TABLE_ERROR
DROP TABLE t1;
+
+# ----------------------------------------------------- #
+# --- Check --- #
+# ----------------------------------------------------- #
+# Check not applicable in this test.
+#SELECT count(*) FROM t1;
+
+# ----------------------------------------------------- #
+# --- Final cleanup --- #
+# ----------------------------------------------------- #
+# Final cleanup not applicable in this test.
+#DROP TABLE t1;
=== modified file 'storage/falcon/Transaction.cpp'
--- a/storage/falcon/Transaction.cpp 2008-09-10 06:42:49 +0000
+++ b/storage/falcon/Transaction.cpp 2008-09-10 17:32:43 +0000
@@ -1502,6 +1502,7 @@ void Transaction::releaseDeferredIndexes
{
ASSERT(deferredIndex->transaction == this);
deferredIndexes = deferredIndex->nextInTransaction;
+ deferredIndex->detachTransaction();
deferredIndexCount--;
}
}
=== modified file 'storage/falcon/ha_falcon.cpp'
--- a/storage/falcon/ha_falcon.cpp 2008-09-09 23:15:17 +0000
+++ b/storage/falcon/ha_falcon.cpp 2008-09-10 13:42:36 +0000
@@ -34,6 +34,7 @@
#include "CmdGen.h"
#include "InfoTable.h"
#include "Format.h"
+#include "Error.h"
#ifdef _WIN32
#define I64FORMAT "%I64d"
@@ -156,12 +157,34 @@ void flushFalconLogFile()
fflush(falcon_log_file);
}
+bool checkExceptionSupport()
+{
+ // Validate that the code has been compiled with support for exceptions
+ // by throwing and catching an exception. If the executable does not
+ // support exceptions we will reach the return false statement
+ try
+ {
+ throw 1;
+ }
+ catch (int)
+ {
+ return true;
+ }
+ return false;
+}
+
int StorageInterface::falcon_init(void *p)
{
DBUG_ENTER("falcon_init");
falcon_hton = (handlerton *)p;
my_bool error = false;
+ if (!checkExceptionSupport())
+ {
+ sql_print_error("Falcon must be compiled with C++ exceptions enabled to work");
+ DBUG_RETURN(1);
+ }
+
StorageHandler::setDataDirectory(mysql_real_data_home);
storageHandler = getFalconStorageHandler(sizeof(THR_LOCK));
@@ -2641,13 +2664,7 @@ void StorageInterface::encodeRecord(ucha
continue;
Field *field = fieldMap[fieldFormat->fieldId];
-
- if (!field)
- {
- dataStream->encodeNull();
-
- continue;
- }
+ ASSERT(field);
if (ptrDiff)
field->move_field_offset(ptrDiff);
| Thread |
|---|
| • bzr push into mysql-6.0-falcon branch (cpowers:2817 to 2820) Bug#39350 | Christopher Powers | 10 Sep |