Below is the list of changes that have just been committed into a local
6.0 repository of . When 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, 2008-01-31 16:56:39-06:00, klewis@klewis-mysql. +20 -0
Changes and a new test case for 34164, Changes for 34086,
Get test cases current with Falcon
mysql-test/suite/falcon/r/falcon_bug_22845.result@stripped, 2008-01-31 16:55:49-06:00,
klewis@klewis-mysql. +9 -4
Get test cases current with Falcon
mysql-test/suite/falcon/r/falcon_bug_28076.result@stripped, 2008-01-31 16:55:52-06:00,
klewis@klewis-mysql. +20 -14
Get test cases current with Falcon
mysql-test/suite/falcon/r/falcon_bug_30878.result@stripped, 2008-01-31 16:55:54-06:00,
klewis@klewis-mysql. +24 -11
Get test cases current with Falcon
mysql-test/suite/falcon/r/falcon_bug_34164.result@stripped, 2008-01-31 16:56:29-06:00,
klewis@klewis-mysql. +106 -0
New test case for 34164
mysql-test/suite/falcon/r/falcon_bug_34164.result@stripped, 2008-01-31 16:56:29-06:00,
klewis@klewis-mysql. +0 -0
mysql-test/suite/falcon/r/falcon_deadlock.result@stripped, 2008-01-31 16:55:57-06:00,
klewis@klewis-mysql. +67 -51
Get test cases current with Falcon
mysql-test/suite/falcon/r/falcon_options.result@stripped, 2008-01-31 16:55:59-06:00,
klewis@klewis-mysql. +3 -3
Get test cases current with Falcon
mysql-test/suite/falcon/t/disabled.def@stripped, 2008-01-31 16:56:01-06:00,
klewis@klewis-mysql. +11 -25
Get test cases current with Falcon
mysql-test/suite/falcon/t/falcon_bug_22845.test@stripped, 2008-01-31 16:56:02-06:00,
klewis@klewis-mysql. +27 -9
Get test cases current with Falcon
mysql-test/suite/falcon/t/falcon_bug_28076.test@stripped, 2008-01-31 16:56:04-06:00,
klewis@klewis-mysql. +30 -10
Get test cases current with Falcon
mysql-test/suite/falcon/t/falcon_bug_30878.test@stripped, 2008-01-31 16:56:06-06:00,
klewis@klewis-mysql. +44 -17
Get test cases current with Falcon
mysql-test/suite/falcon/t/falcon_bug_34164.test@stripped, 2008-01-31 16:56:26-06:00,
klewis@klewis-mysql. +89 -0
New test case for 34164
mysql-test/suite/falcon/t/falcon_bug_34164.test@stripped, 2008-01-31 16:56:26-06:00,
klewis@klewis-mysql. +0 -0
mysql-test/suite/falcon/t/falcon_deadlock.test@stripped, 2008-01-31 16:56:08-06:00,
klewis@klewis-mysql. +165 -6
Get test cases current with Falcon
mysql-test/suite/falcon/t/falcon_options.test@stripped, 2008-01-31 16:56:10-06:00,
klewis@klewis-mysql. +2 -4
Get test cases current with Falcon
storage/falcon/Dbb.cpp@stripped, 2008-01-31 16:56:12-06:00, klewis@klewis-mysql. +15 -5
Changes for 34086
storage/falcon/IO.cpp@stripped, 2008-01-31 16:56:14-06:00, klewis@klewis-mysql. +5 -4
Changes for 34086
storage/falcon/SQLException.h@stripped, 2008-01-31 16:56:16-06:00, klewis@klewis-mysql. +2
-1
Changes for 34086
storage/falcon/StorageHandler.cpp@stripped, 2008-01-31 16:56:18-06:00, klewis@klewis-mysql.
+16 -3
Changes for 34086
storage/falcon/StorageHandler.h@stripped, 2008-01-31 16:56:20-06:00, klewis@klewis-mysql. +1
-0
Changes for 34086
storage/falcon/StorageTableShare.cpp@stripped, 2008-01-31 16:56:23-06:00,
klewis@klewis-mysql. +2 -0
Changes for 34086
storage/falcon/ha_falcon.cpp@stripped, 2008-01-31 16:56:24-06:00, klewis@klewis-mysql. +12
-6
Changes for 34164
diff -Nrup a/mysql-test/suite/falcon/r/falcon_bug_22845.result
b/mysql-test/suite/falcon/r/falcon_bug_22845.result
--- a/mysql-test/suite/falcon/r/falcon_bug_22845.result 2007-09-20 10:43:04 -05:00
+++ b/mysql-test/suite/falcon/r/falcon_bug_22845.result 2008-01-31 16:55:49 -06:00
@@ -1,16 +1,15 @@
-SET storage_engine = Falcon;
*** Bug #22845 ***
+SET @@storage_engine = 'Falcon';
DROP DATABASE IF EXISTS db1;
CREATE DATABASE db1;
USE db1;
# Establish connection conn1
USE db1;
-SET storage_engine = Falcon;
+SET @@storage_engine = 'Falcon';
SET @@autocommit = 0;
# Switch to connection default
SET @@autocommit = 0;
-CREATE TABLE t1 (a int)
-PARTITION BY LIST (a) (
+CREATE TABLE t1 (a int) PARTITION BY LIST (a) (
PARTITION p1 VALUES IN (1),
PARTITION p2 VALUES IN (2),
PARTITION p3 VALUES IN (null)
@@ -21,8 +20,14 @@ START TRANSACTION;
INSERT INTO t1 VALUES (2);
# Switch to connection default
ALTER TABLE t1 DROP PARTITION p2;
+ERROR HY000: Can't lock file (errno: 212)
# Switch to connection conn1
COMMIT;
# Switch to connection default
+ALTER TABLE t1 DROP PARTITION p2;
+COMMIT;
+SELECT count(*) FROM t1;
+count(*)
+0
COMMIT;
DROP DATABASE db1;
diff -Nrup a/mysql-test/suite/falcon/r/falcon_bug_28076.result
b/mysql-test/suite/falcon/r/falcon_bug_28076.result
--- a/mysql-test/suite/falcon/r/falcon_bug_28076.result 2007-09-20 10:43:15 -05:00
+++ b/mysql-test/suite/falcon/r/falcon_bug_28076.result 2008-01-31 16:55:52 -06:00
@@ -1,19 +1,25 @@
-SET storage_engine = Falcon;
*** Bug #28076 ***
+SET @@storage_engine = 'Falcon';
DROP TABLE IF EXISTS t1;
-CREATE TABLE t1 (s1 binary(5), s2 varbinary(5));
+CREATE TABLE t1 (
+a binary(5),
+b varbinary(5)
+);
INSERT INTO t1 VALUES (0x41, 0x41);
-SELECT hex(s1),hex(s2) FROM t1;
-hex(s1) hex(s2)
+SELECT hex(a),hex(b) FROM t1;
+hex(a) hex(b)
4100000000 41
-SELECT hex(s1),hex(s2) FROM t1 WHERE s1 IN (SELECT s2 FROM t1);
-hex(s1) hex(s2)
-SELECT hex(s1),hex(s2) FROM t1 WHERE s2 IN (SELECT s1 FROM t1);
-hex(s1) hex(s2)
-CREATE INDEX i1 on t1 (s1);
-CREATE INDEX i2 on t1 (s2);
-SELECT hex(s1),hex(s2) FROM t1 WHERE s1 IN (SELECT s2 FROM t1);
-hex(s1) hex(s2)
-SELECT hex(s1),hex(s2) FROM t1 WHERE s2 IN (SELECT s1 FROM t1);
-hex(s1) hex(s2)
+SELECT hex(a),hex(b) FROM t1 WHERE a IN (SELECT b FROM t1);
+hex(a) hex(b)
+SELECT hex(a),hex(b) FROM t1 WHERE b IN (SELECT a FROM t1);
+hex(a) hex(b)
+CREATE INDEX i1 on t1 (a);
+CREATE INDEX i2 on t1 (b);
+SELECT hex(a),hex(b) FROM t1 WHERE a IN (SELECT b FROM t1);
+hex(a) hex(b)
+SELECT hex(a),hex(b) FROM t1 WHERE b IN (SELECT a FROM t1);
+hex(a) hex(b)
+SELECT count(*) FROM t1;
+count(*)
+1
DROP TABLE t1;
diff -Nrup a/mysql-test/suite/falcon/r/falcon_bug_30878.result
b/mysql-test/suite/falcon/r/falcon_bug_30878.result
--- a/mysql-test/suite/falcon/r/falcon_bug_30878.result 2007-09-20 10:43:17 -05:00
+++ b/mysql-test/suite/falcon/r/falcon_bug_30878.result 2008-01-31 16:55:54 -06:00
@@ -1,17 +1,30 @@
-drop table if exists t1;
-create table t1 (id int auto_increment, s1 int, primary key (id)) engine=falcon;
-insert into t1 values (null,1);
-insert into t1 values (null,2);
-insert into t1 values (null,3);
-insert into t1 values (null,4);
-insert into t1 values (null,5);
-insert into t1 values (null,6);
-select * from t1;
-id s1
+*** Bug #30878 ***
+SET @@storage_engine = 'Falcon';
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 (
+a int auto_increment,
+b int,
+PRIMARY KEY (a)
+);
+INSERT INTO t1 VALUES (NULL, 1);
+INSERT INTO t1 VALUES (NULL, 2);
+INSERT INTO t1 VALUES (NULL, 3);
+INSERT INTO t1 VALUES (NULL, 4);
+INSERT INTO t1 VALUES (NULL, 5);
+INSERT INTO t1 VALUES (NULL, 6);
+ALTER TABLE t1 PARTITION BY RANGE (a) (
+PARTITION p1 VALUES LESS THAN (3),
+PARTITION p2 VALUES LESS THAN MAXVALUE
+);
+SELECT * FROM t1 ORDER BY b;
+a b
1 1
2 2
3 3
4 4
5 5
6 6
-alter table t1 partition by range (id) (partition p1 values less than (3), partition p2
values less than maxvalue);
+SELECT count(*) FROM t1;
+count(*)
+6
+DROP TABLE t1;
diff -Nrup a/mysql-test/suite/falcon/r/falcon_bug_34164.result
b/mysql-test/suite/falcon/r/falcon_bug_34164.result
--- /dev/null Wed Dec 31 16:00:00 196900
+++ b/mysql-test/suite/falcon/r/falcon_bug_34164.result 2008-01-31 16:56:29 -06:00
@@ -0,0 +1,106 @@
+SET storage_engine = Falcon;
+*** Bug #34164 ***
+DROP DATABASE IF EXISTS test2;
+SET GLOBAL FALCON_CONSISTENT_READ=OFF;
+CREATE DATABASE test2;
+USE test2;
+CREATE TABLE t1 (a int primary key, b int) engine=falcon;
+# Establish connection conn1 (user = root)
+USE test2;
+SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
+SHOW VARIABLES LIKE 'tx_isolation';
+Variable_name Value
+tx_isolation SERIALIZABLE
+SHOW VARIABLES LIKE 'falcon_consistent_read';
+Variable_name Value
+falcon_consistent_read OFF
+START TRANSACTION;
+SELECT * FROM t1;
+a b
+Warnings:
+Warning 1568 Falcon does not support SERIALIZABLE ISOLATION, using REPEATABLE READ
instead.
+INSERT INTO t1 VALUES (1,1);
+Warnings:
+Warning 1568 Falcon does not support SERIALIZABLE ISOLATION, using REPEATABLE READ
instead.
+UPDATE t1 SET b = 11 WHERE a = 1;
+COMMIT;
+SELECT * FROM t1;
+a b
+1 11
+SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
+SHOW VARIABLES LIKE 'tx_isolation';
+Variable_name Value
+tx_isolation READ-UNCOMMITTED
+SHOW VARIABLES LIKE 'falcon_consistent_read';
+Variable_name Value
+falcon_consistent_read OFF
+START TRANSACTION;
+SELECT * FROM t1;
+a b
+1 11
+Warnings:
+Warning 1568 Falcon does not support READ UNCOMMITTED ISOLATION, using REPEATABLE READ
instead.
+INSERT INTO t1 VALUES (2,2);
+Warnings:
+Warning 1568 Falcon does not support READ UNCOMMITTED ISOLATION, using REPEATABLE READ
instead.
+UPDATE t1 SET b = 22 WHERE a = 2;
+COMMIT;
+SELECT * FROM t1;
+a b
+1 11
+2 22
+SET GLOBAL FALCON_CONSISTENT_READ=ON;
+# Establish connection conn2 (user = root)
+USE test2;
+SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
+SHOW VARIABLES LIKE 'tx_isolation';
+Variable_name Value
+tx_isolation SERIALIZABLE
+SHOW VARIABLES LIKE 'falcon_consistent_read';
+Variable_name Value
+falcon_consistent_read ON
+START TRANSACTION;
+SELECT * FROM t1;
+a b
+1 11
+2 22
+Warnings:
+Warning 1568 Falcon does not support SERIALIZABLE ISOLATION, using REPEATABLE READ
instead.
+INSERT INTO t1 VALUES (3,3);
+Warnings:
+Warning 1568 Falcon does not support SERIALIZABLE ISOLATION, using REPEATABLE READ
instead.
+UPDATE t1 SET b = 33 WHERE a = 3;
+COMMIT;
+SELECT * FROM t1;
+a b
+1 11
+2 22
+3 3
+SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
+SHOW VARIABLES LIKE 'tx_isolation';
+Variable_name Value
+tx_isolation READ-UNCOMMITTED
+SHOW VARIABLES LIKE 'falcon_consistent_read';
+Variable_name Value
+falcon_consistent_read ON
+START TRANSACTION;
+SELECT * FROM t1;
+a b
+1 11
+2 22
+3 3
+Warnings:
+Warning 1568 Falcon does not support READ UNCOMMITTED ISOLATION, using REPEATABLE READ
instead.
+INSERT INTO t1 VALUES (4,4);
+Warnings:
+Warning 1568 Falcon does not support READ UNCOMMITTED ISOLATION, using REPEATABLE READ
instead.
+UPDATE t1 SET b = 44 WHERE a = 4;
+COMMIT;
+SELECT * FROM t1;
+a b
+1 11
+2 22
+3 3
+4 4
+DROP DATABASE test2;
+USE test;
diff -Nrup a/mysql-test/suite/falcon/r/falcon_deadlock.result
b/mysql-test/suite/falcon/r/falcon_deadlock.result
--- a/mysql-test/suite/falcon/r/falcon_deadlock.result 2007-09-20 10:43:18 -05:00
+++ b/mysql-test/suite/falcon/r/falcon_deadlock.result 2008-01-31 16:55:57 -06:00
@@ -1,114 +1,130 @@
# Establish connection con1 (user=root)
# Establish connection con2 (user=root)
-drop table if exists t1,t2;
+DROP TABLE IF EXISTS t1;
+DROP TABLE IF EXISTS t2;
# Switch to connection con1
-create table t1 (id integer, x integer) engine=Falcon;
-insert into t1 values(0, 0);
-set autocommit=0;
-SELECT * from t1 where id = 0 FOR UPDATE;
+CREATE TABLE t1 (
+id integer,
+x integer
+);
+INSERT INTO t1 VALUES (0, 0);
+SET @@autocommit = 0;
+SELECT * FROM t1 WHERE id = 0 FOR UPDATE;
id x
0 0
# Switch to connection con2
-set autocommit=0;
-update t1 set x=2 where id = 0;
+SET @@autocommit = 0;
+UPDATE t1 SET x = 2 WHERE id = 0;
# Switch to connection con1
-update t1 set x=1 where id = 0;
-select * from t1;
+UPDATE t1 SET x = 1 WHERE id = 0;
+SELECT * FROM t1;
id x
0 1
-commit;
+COMMIT;
# Switch to connection con2
-commit;
+COMMIT;
# Switch to connection con1
-select * from t1;
+SELECT * FROM t1;
id x
0 2
-commit;
-drop table t1;
+COMMIT;
+DROP TABLE t1;
# Switch to connection con1
-create table t1 (id integer, x integer) engine=Falcon;
-create table t2 (b integer, a integer) engine=Falcon;
-insert into t1 values(0, 0), (300, 300);
-insert into t2 values(0, 10), (1, 20), (2, 30);
-commit;
-set autocommit=0;
-select * from t2;
+CREATE TABLE t1 (
+id integer,
+x integer
+);
+CREATE TABLE t2 (
+b integer,
+a integer
+);
+INSERT INTO t1 VALUES (0, 0), (300, 300);
+INSERT INTO t2 VALUES (0, 10), (1, 20), (2, 30);
+COMMIT;
+SELECT * FROM t2;
b a
0 10
1 20
2 30
-update t2 set a=100 where b=(SELECT x from t1 where id = b FOR UPDATE);
-select * from t2;
+UPDATE t2 SET a = 100 WHERE b = (SELECT x FROM t1 WHERE id = b FOR UPDATE);
+SELECT * FROM t2;
b a
0 100
1 20
2 30
-select * from t1;
+SELECT * FROM t1;
id x
0 0
300 300
# Switch to connection con2
-set autocommit=0;
-update t1 set x=2 where id = 0;
+UPDATE t1 SET x = 2 WHERE id = 0;
# Switch to connection con1
-update t1 set x=1 where id = 0;
-select * from t1;
+UPDATE t1 SET x = 1 WHERE id = 0;
+SELECT * FROM t1;
id x
0 1
300 300
-commit;
+COMMIT;
# Switch to connection con2
-commit;
+COMMIT;
# Switch to connection con1
-select * from t1;
+SELECT * FROM t1;
id x
0 2
300 300
-commit;
-drop table t1, t2;
-create table t1 (id integer, x integer) engine=Falcon;
-create table t2 (b integer, a integer) engine=Falcon;
-insert into t1 values(0, 0), (300, 300);
-insert into t2 values(0, 0), (1, 20), (2, 30);
-commit;
+COMMIT;
+DROP TABLE t1;
+DROP TABLE t2;
+CREATE TABLE t1 (
+id integer,
+x integer
+);
+CREATE TABLE t2 (
+b integer,
+a integer
+);
+INSERT INTO t1 VALUES (0, 0), (300, 300);
+INSERT INTO t2 VALUES (0, 0), (1, 20), (2, 30);
+COMMIT;
# Switch to connection con1
-select a,b from t2 UNION SELECT id, x from t1 FOR UPDATE;
+SELECT a, b FROM t2 UNION SELECT id, x FROM t1 FOR UPDATE;
a b
0 0
20 1
30 2
300 300
-select * from t2;
+SELECT * FROM t2;
b a
0 0
1 20
2 30
-select * from t1;
+SELECT * FROM t1;
id x
0 0
300 300
# Switch to connection con2
-update t2 set a=2 where b = 0;
-select * from t2;
+UPDATE t2 SET a = 2 WHERE b = 0;
+SELECT * FROM t2;
b a
0 2
1 20
2 30
-update t1 set x=2 where id = 0;
+UPDATE t1 SET x = 2 WHERE id = 0;
# Switch to connection con1
-update t1 set x=1 where id = 0;
-select * from t1;
+UPDATE t1 SET x = 1 WHERE id = 0;
+SELECT * FROM t1;
id x
0 1
300 300
-commit;
+COMMIT;
# Switch to connection con2
-commit;
+COMMIT;
# Switch to connection con1
-select * from t1;
+SELECT * FROM t1;
id x
0 2
300 300
-commit;
+COMMIT;
# Switch to connection default + disconnect con1 and con2
-drop table t1, t2;
+DROP TABLE t1;
+DROP TABLE t2;
diff -Nrup a/mysql-test/suite/falcon/r/falcon_options.result
b/mysql-test/suite/falcon/r/falcon_options.result
--- a/mysql-test/suite/falcon/r/falcon_options.result 2008-01-04 23:47:26 -06:00
+++ b/mysql-test/suite/falcon/r/falcon_options.result 2008-01-31 16:55:59 -06:00
@@ -68,10 +68,10 @@ SELECT @@GLOBAL.falcon_max_transaction_b
SELECT @@GLOBAL.falcon_record_memory_max;
@@GLOBAL.falcon_record_memory_max
262144000
-SET GLOBAL falcon_record_memory_max = 1073741824;
+SET GLOBAL falcon_record_memory_max = 536870912;
SELECT @@GLOBAL.falcon_record_memory_max;
@@GLOBAL.falcon_record_memory_max
-1073741824
+536870912
SELECT * FROM INFORMATION_SCHEMA.global_variables
WHERE variable_name LIKE 'falcon%';
VARIABLE_NAME VARIABLE_VALUE
@@ -91,7 +91,7 @@ FALCON_MAX_TRANSACTION_BACKLOG 10001
FALCON_PAGE_CACHE_SIZE 4194304
FALCON_PAGE_SIZE 4096
FALCON_RECORD_CHILL_THRESHOLD 5
-FALCON_RECORD_MEMORY_MAX 1073741824
+FALCON_RECORD_MEMORY_MAX 536870912
FALCON_RECORD_SCAVENGE_FLOOR 50
FALCON_RECORD_SCAVENGE_THRESHOLD 67
FALCON_SCAVENGE_SCHEDULE 15,45 * * * * *
diff -Nrup a/mysql-test/suite/falcon/t/disabled.def
b/mysql-test/suite/falcon/t/disabled.def
--- a/mysql-test/suite/falcon/t/disabled.def 2008-01-30 01:57:33 -06:00
+++ b/mysql-test/suite/falcon/t/disabled.def 2008-01-31 16:56:01 -06:00
@@ -10,43 +10,29 @@
#
##############################################################################
-handler_falcon : Bug#28096 2007-01-23 hakank Currently fails
-falcon_deadlock : Bug#28097 2007-04-25 hakank Currently hangs
falcon_bug_22144 : Bug#22144 2006-08-24 hakank Get pushbuild green
-falcon_bug_22151 : Bug#22151 2006-08-24 hakank (Get pushbuild green)
+falcon_bug_22151 : Bug#22151 2006-08-24 hakank Get pushbuild green
falcon_bug_22154 : Bug#22154 2006-11-04 hakank Too long run time for PB
falcon_bug_22156 : Bug#22156 2006-11-04 hakank Case sensitivity problem
-falcon_bug_22165 : Bug#22165 2006-08-24 hakank (Get pushbuild green)
-falcon_bug_22166 : Bug#22166 2006-08-24 hakank (Get pushbuild green)
+falcon_bug_22165 : Bug#22165 2006-08-24 hakank Get pushbuild green
+falcon_bug_22166 : Bug#22166 2006-08-24 hakank Get pushbuild green
falcon_bug_22169 : Bug#22169 2006-08-24 hakank Too long run time for PB
falcon_bug_22182 : Disabled until runtime team provides RENAME DATABASE replacement.
See WL#4030
-falcon_bug_22187 : Bug#22187 2006-08-24 hakank (Get pushbuild green)
-falcon_bug_22189 : Bug#22189 2006-08-24 hakank (Get pushbuild green)
-falcon_bug_22845 : Bug#22845 2006-10-07 hakank Currently hangs
+falcon_bug_22187 : Bug#22187 2006-08-24 hakank Get pushbuild green
+falcon_bug_22189 : Bug#22189 2006-08-24 hakank Get pushbuild green
falcon_bug_23692 : Bug#23692 2006-10-27 hakank Currently failing
-falcon_bug_24024 : Bug#24024 2006-12-05 ML (Get pushbuild green)
+falcon_bug_24024 : Bug#24024 2006-12-05 ML Get pushbuild green
falcon_bug_26058 : Bug#26058 2007-05-03 hakank Currently failing
+falcon_bug_26433 : Bug#32697 falcon_bug_26433.test fails randomly
+falcon_bug_27951 : Bug#32731 falcon_bug_27951 fails randomly
falcon_bug_27997 : Bug#27997 2007-04-21 hakank Currently failing
falcon_bug_28006 : Bug#28006 2007-08-22 hakank Won't fix, see also Bug#15491
-falcon_bug_28076 : Bug#28076 2007-04-25 klewis Currently failing
-#falcon_bug_28095_I : Bug#32992 2007-12-19 hakank Currently failing
-#falcon_bug_28095_II : Bug#32992 2007-12-19 hakank Currently failing
falcon_bug_29246 : Bug#29246 2007-06-21 hakank Currently failing
falcon_bug_30282 : Bug#30282 2007-08-21 hakank Currently failing
-falcon_bug_30878 : Bug#30878 2007-09-06 cpowers Currently failing (server bug)
falcon_bug_30480_A : Bug#30282 2007-09-07 klewis Currently failing
falcon_bug_30480_B : Bug#30282 2007-09-07 klewis Currently failing
falcon_bug_32413 : Bug#32413 2007-11-15 cpowers Does not play nicely with other tests
-falcon_page_size_1 : Bug#32992 2007-12-03 hakank Currently failing
-#falcon_page_size_2 : Bug#32992 2007-12-03 hakank Currently failing
-#falcon_page_size_4 : Bug#32992 2007-12-03 hakank Currently failing
-#falcon_page_size_8 : Bug#32992 2007-12-03 hakank Currently failing
-#falcon_page_size_16 : Bug#32992 2007-12-03 hakank Currently failing
-#falcon_page_size_32 : Bug#32992 2007-12-03 hakank Currently failing
+falcon_deadlock : Bug#28097 2007-04-25 hakank Currently hangs
+index_merge_falcon : Bug#32696 index_merge_falcon.test fails
+ps_8falcon : Bug#32683 Test ps_8falcon fails in 6.0
read_many_rows_falcon : Bug#23783 2006-10-30 ML Get pushbuild green
-index_merge_falcon : Bug#32696 index_merge_falcon.test fails
-falcon_bug_26433 : Bug#32697 falcon_bug_26433.test fails randomly
-falcon_bug_27951 : Bug#32731 falcon_bug_27951 fails randomly
-ps_8falcon : Bug #32683 Test ps_8falcon fails in 6.0
-#falcon_read-committed: Bug#32992: falcon_read-committed.test causes a server crash
occasionally
-falcon_ts : Bug#32993: falcon_ts.test fails sporadically
diff -Nrup a/mysql-test/suite/falcon/t/falcon_bug_22845.test
b/mysql-test/suite/falcon/t/falcon_bug_22845.test
--- a/mysql-test/suite/falcon/t/falcon_bug_22845.test 2007-10-05 07:21:27 -05:00
+++ b/mysql-test/suite/falcon/t/falcon_bug_22845.test 2008-01-31 16:56:02 -06:00
@@ -1,9 +1,15 @@
--source include/have_falcon.inc
-SET storage_engine = Falcon;
#
# Bug #22845: Falcon: hang on partition drop
#
--echo *** Bug #22845 ***
+
+# ----------------------------------------------------- #
+# --- Initialisation --- #
+# ----------------------------------------------------- #
+let $engine = 'Falcon';
+eval SET @@storage_engine = $engine;
+
--disable_warnings
DROP DATABASE IF EXISTS db1;
--enable_warnings
@@ -13,21 +19,23 @@ USE db1;
--echo # Establish connection conn1
connect (conn1,localhost,root,,);
USE db1;
-SET storage_engine = Falcon;
+eval SET @@storage_engine = $engine;
SET @@autocommit = 0;
--echo # Switch to connection default
connection default;
SET @@autocommit = 0;
-CREATE TABLE t1 (a int)
- PARTITION BY LIST (a) (
- PARTITION p1 VALUES IN (1),
- PARTITION p2 VALUES IN (2),
- PARTITION p3 VALUES IN (null)
+CREATE TABLE t1 (a int) PARTITION BY LIST (a) (
+ PARTITION p1 VALUES IN (1),
+ PARTITION p2 VALUES IN (2),
+ PARTITION p3 VALUES IN (null)
);
START TRANSACTION;
+# ----------------------------------------------------- #
+# --- Test --- #
+# ----------------------------------------------------- #
--echo # Switch to connection conn1
connection conn1;
START TRANSACTION;
@@ -35,7 +43,9 @@ INSERT INTO t1 VALUES (2);
--echo # Switch to connection default
connection default;
---error ER_GET_ERRMSG
+# With Falcon we cannot do DDL on objects with
+# pending transactions.
+--error ER_CANT_LOCK
ALTER TABLE t1 DROP PARTITION p2;
--echo # Switch to connection conn1
@@ -47,7 +57,15 @@ connection default;
ALTER TABLE t1 DROP PARTITION p2;
COMMIT;
-# Final cleanup.
+# ----------------------------------------------------- #
+# --- Check --- #
+# ----------------------------------------------------- #
+SELECT count(*) FROM t1;
+COMMIT;
+
+# ----------------------------------------------------- #
+# --- Final cleanup --- #
+# ----------------------------------------------------- #
connection default;
disconnect conn1;
DROP DATABASE db1;
diff -Nrup a/mysql-test/suite/falcon/t/falcon_bug_28076.test
b/mysql-test/suite/falcon/t/falcon_bug_28076.test
--- a/mysql-test/suite/falcon/t/falcon_bug_28076.test 2007-09-28 23:30:37 -05:00
+++ b/mysql-test/suite/falcon/t/falcon_bug_28076.test 2008-01-31 16:56:04 -06:00
@@ -1,23 +1,43 @@
--source include/have_falcon.inc
-SET storage_engine = Falcon;
#
# Bug #28076: Falcon: inconsistent binary/varbinary comparison
#
--echo *** Bug #28076 ***
+
+# ----------------------------------------------------- #
+# --- Initialisation --- #
+# ----------------------------------------------------- #
+let $engine = 'Falcon';
+eval SET @@storage_engine = $engine;
+
--disable_warnings
DROP TABLE IF EXISTS t1;
--enable_warnings
-CREATE TABLE t1 (s1 binary(5), s2 varbinary(5));
+CREATE TABLE t1 (
+ a binary(5),
+ b varbinary(5)
+);
INSERT INTO t1 VALUES (0x41, 0x41);
-SELECT hex(s1),hex(s2) FROM t1;
-SELECT hex(s1),hex(s2) FROM t1 WHERE s1 IN (SELECT s2 FROM t1);
-SELECT hex(s1),hex(s2) FROM t1 WHERE s2 IN (SELECT s1 FROM t1);
-CREATE INDEX i1 on t1 (s1);
-CREATE INDEX i2 on t1 (s2);
-SELECT hex(s1),hex(s2) FROM t1 WHERE s1 IN (SELECT s2 FROM t1);
-SELECT hex(s1),hex(s2) FROM t1 WHERE s2 IN (SELECT s1 FROM t1);
-# Final cleanup.
+# ----------------------------------------------------- #
+# --- Test --- #
+# ----------------------------------------------------- #
+SELECT hex(a),hex(b) FROM t1;
+SELECT hex(a),hex(b) FROM t1 WHERE a IN (SELECT b FROM t1);
+SELECT hex(a),hex(b) FROM t1 WHERE b IN (SELECT a FROM t1);
+CREATE INDEX i1 on t1 (a);
+CREATE INDEX i2 on t1 (b);
+SELECT hex(a),hex(b) FROM t1 WHERE a IN (SELECT b FROM t1);
+SELECT hex(a),hex(b) FROM t1 WHERE b IN (SELECT a FROM t1);
+
+# ----------------------------------------------------- #
+# --- Check --- #
+# ----------------------------------------------------- #
+SELECT count(*) FROM t1;
+
+# ----------------------------------------------------- #
+# --- Final cleanup --- #
+# ----------------------------------------------------- #
DROP TABLE t1;
diff -Nrup a/mysql-test/suite/falcon/t/falcon_bug_30878.test
b/mysql-test/suite/falcon/t/falcon_bug_30878.test
--- a/mysql-test/suite/falcon/t/falcon_bug_30878.test 2007-09-28 23:30:38 -05:00
+++ b/mysql-test/suite/falcon/t/falcon_bug_30878.test 2008-01-31 16:56:06 -06:00
@@ -1,21 +1,48 @@
--source include/have_falcon.inc
+--source include/have_partition.inc
+#
+# Bug #30878: Partitioning: Crash when alter an auto_increment table to partitioned
+#
+--echo *** Bug #30878 ***
+
+# ----------------------------------------------------- #
+# --- Initialisation --- #
+# ----------------------------------------------------- #
+let $engine = 'Falcon';
+eval SET @@storage_engine = $engine;
+
--disable_warnings
-drop table if exists t1;
+DROP TABLE IF EXISTS t1;
--enable_warnings
-create table t1 (id int auto_increment, s1 int, primary key (id)) engine=falcon;
-
-insert into t1 values (null,1);
-insert into t1 values (null,2);
-insert into t1 values (null,3);
-insert into t1 values (null,4);
-insert into t1 values (null,5);
-insert into t1 values (null,6);
-
-select * from t1;
-
-alter table t1 partition by range (id) (partition p1 values less than (3), partition p2
values less than maxvalue);
-
-
-
-
+CREATE TABLE t1 (
+ a int auto_increment,
+ b int,
+ PRIMARY KEY (a)
+);
+
+INSERT INTO t1 VALUES (NULL, 1);
+INSERT INTO t1 VALUES (NULL, 2);
+INSERT INTO t1 VALUES (NULL, 3);
+INSERT INTO t1 VALUES (NULL, 4);
+INSERT INTO t1 VALUES (NULL, 5);
+INSERT INTO t1 VALUES (NULL, 6);
+
+# ----------------------------------------------------- #
+# --- Test --- #
+# ----------------------------------------------------- #
+ALTER TABLE t1 PARTITION BY RANGE (a) (
+ PARTITION p1 VALUES LESS THAN (3),
+ PARTITION p2 VALUES LESS THAN MAXVALUE
+);
+
+# ----------------------------------------------------- #
+# --- Check --- #
+# ----------------------------------------------------- #
+SELECT * FROM t1 ORDER BY b;
+SELECT count(*) FROM t1;
+
+# ----------------------------------------------------- #
+# --- Final cleanup --- #
+# ----------------------------------------------------- #
+DROP TABLE t1;
diff -Nrup a/mysql-test/suite/falcon/t/falcon_bug_34164.test
b/mysql-test/suite/falcon/t/falcon_bug_34164.test
--- /dev/null Wed Dec 31 16:00:00 196900
+++ b/mysql-test/suite/falcon/t/falcon_bug_34164.test 2008-01-31 16:56:26 -06:00
@@ -0,0 +1,89 @@
+--disable_abort_on_error
+--source include/have_falcon.inc
+
+SET storage_engine = Falcon;
+#
+# Bug #34164: Serializable Transaction asserts
+#
+--echo *** Bug #34164 ***
+--disable_warnings
+DROP DATABASE IF EXISTS test2;
+--enable_warnings
+
+SET GLOBAL FALCON_CONSISTENT_READ=OFF;
+CREATE DATABASE test2;
+USE test2;
+CREATE TABLE t1 (a int primary key, b int) engine=falcon;
+
+--echo # Establish connection conn1 (user = root)
+connect (conn1,localhost,root,,);
+connection conn1;
+USE test2;
+SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
+SHOW VARIABLES LIKE 'tx_isolation';
+SHOW VARIABLES LIKE 'falcon_consistent_read';
+START TRANSACTION;
+SELECT * FROM t1;
+INSERT INTO t1 VALUES (1,1);
+connection default;
+--send UPDATE t1 SET b = 11 WHERE a = 1
+connection conn1;
+COMMIT;
+connection default;
+--reap
+SELECT * FROM t1;
+
+
+connection conn1;
+SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
+SHOW VARIABLES LIKE 'tx_isolation';
+SHOW VARIABLES LIKE 'falcon_consistent_read';
+START TRANSACTION;
+SELECT * FROM t1;
+INSERT INTO t1 VALUES (2,2);
+connection default;
+--send UPDATE t1 SET b = 22 WHERE a = 2
+connection conn1;
+COMMIT;
+connection default;
+--reap
+SELECT * FROM t1;
+
+
+SET GLOBAL FALCON_CONSISTENT_READ=ON;
+--echo # Establish connection conn2 (user = root)
+connect (conn2,localhost,root,,);
+connection conn2;
+USE test2;
+SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
+SHOW VARIABLES LIKE 'tx_isolation';
+SHOW VARIABLES LIKE 'falcon_consistent_read';
+START TRANSACTION;
+SELECT * FROM t1;
+INSERT INTO t1 VALUES (3,3);
+connection default;
+UPDATE t1 SET b = 33 WHERE a = 3;
+connection conn2;
+COMMIT;
+SELECT * FROM t1;
+
+connection conn2;
+SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
+SHOW VARIABLES LIKE 'tx_isolation';
+SHOW VARIABLES LIKE 'falcon_consistent_read';
+START TRANSACTION;
+SELECT * FROM t1;
+INSERT INTO t1 VALUES (4,4);
+connection default;
+UPDATE t1 SET b = 44 WHERE a = 4;
+connection conn2;
+COMMIT;
+SELECT * FROM t1;
+
+
+# Final cleanup
+connection default;
+disconnect conn1;
+disconnect conn2;
+DROP DATABASE test2;
+USE test;
diff -Nrup a/mysql-test/suite/falcon/t/falcon_deadlock.test
b/mysql-test/suite/falcon/t/falcon_deadlock.test
--- a/mysql-test/suite/falcon/t/falcon_deadlock.test 2007-09-20 10:43:43 -05:00
+++ b/mysql-test/suite/falcon/t/falcon_deadlock.test 2008-01-31 16:56:08 -06:00
@@ -1,9 +1,168 @@
-# This test was derived from innodb_deadlock.test.
-
-- source include/have_falcon.inc
-let $engine_type = Falcon;
-
-# Can't test this with embedded server
-- source include/not_embedded.inc
+#
+# This test was derived from innodb_deadlock.test,
+# which sources in include/deadlock.inc.
+#
+# As Falcon has different behavior than InnoDB,
+# we rewrote the parts in question.
+#
+let $engine = Falcon;
+eval SET @@storage_engine = $engine;
+
+--echo # Establish connection con1 (user=root)
+connect (con1,localhost,root,,);
+eval SET @@storage_engine = $engine;
+
+--echo # Establish connection con2 (user=root)
+connect (con2,localhost,root,,);
+eval SET @@storage_engine = $engine;
+
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+DROP TABLE IF EXISTS t2;
+--enable_warnings
+
+#
+# Testing of FOR UPDATE, first take.
+#
+--echo # Switch to connection con1
+connection con1;
+CREATE TABLE t1 (
+ id integer,
+ x integer
+);
+
+INSERT INTO t1 VALUES (0, 0);
+SET @@autocommit = 0;
+SELECT * FROM t1 WHERE id = 0 FOR UPDATE;
+
+--echo # Switch to connection con2
+connection con2;
+SET @@autocommit = 0;
+
+# The following query should hang because con1 is locking the record
+--send UPDATE t1 SET x = 2 WHERE id = 0;
+--real_sleep 2
+
+--echo # Switch to connection con1
+connection con1;
+UPDATE t1 SET x = 1 WHERE id = 0;
+SELECT * FROM t1;
+COMMIT;
+
+--echo # Switch to connection con2
+connection con2;
+# With Falcon we should get a
+# Record has changed since last read in table 't1' here.
+--error ER_CHECKREAD
+--reap
+ROLLBACK;
+
+--echo # Switch to connection con1
+connection con1;
+SELECT * FROM t1;
+COMMIT;
+
+DROP TABLE t1;
+
+#
+# Testing of FOR UPDATE, second take.
+#
+--echo # Switch to connection con1
+connection con1;
+CREATE TABLE t1 (
+ id integer,
+ x integer
+);
+
+CREATE TABLE t2 (
+ b integer,
+ a integer
+);
+
+INSERT INTO t1 VALUES (0, 0), (300, 300);
+INSERT INTO t2 VALUES (0, 10), (1, 20), (2, 30);
+COMMIT;
+
+SELECT * FROM t2;
+UPDATE t2 SET a = 100 WHERE b = (SELECT x FROM t1 WHERE id = b FOR UPDATE);
+SELECT * FROM t2;
+SELECT * FROM t1;
+
+--echo # Switch to connection con2
+connection con2;
+
+# The following query should hang because con1 is locking the record
+--send UPDATE t1 SET x = 2 WHERE id = 0;
+--real_sleep 2
+
+--echo # Switch to connection con1
+connection con1;
+UPDATE t1 SET x = 1 WHERE id = 0;
+SELECT * FROM t1;
+COMMIT;
+
+--echo # Switch to connection con2
+connection con2;
+--reap
+COMMIT;
+
+--echo # Switch to connection con1
+connection con1;
+SELECT * FROM t1;
+COMMIT;
+
+DROP TABLE t1;
+DROP TABLE t2;
+
+CREATE TABLE t1 (
+ id integer,
+ x integer
+);
+
+CREATE TABLE t2 (
+ b integer,
+ a integer
+);
+
+INSERT INTO t1 VALUES (0, 0), (300, 300);
+INSERT INTO t2 VALUES (0, 0), (1, 20), (2, 30);
+COMMIT;
+
+SELECT a, b FROM t2 UNION SELECT id, x FROM t1 FOR UPDATE;
+SELECT * FROM t2;
+SELECT * FROM t1;
+
+--echo # Switch to connection con2
+connection con2;
+
+# The following query should hang because con1 is locking the record
+UPDATE t2 SET a = 2 WHERE b = 0;
+SELECT * FROM t2;
+--send UPDATE t1 SET x = 2 WHERE id = 0;
+--real_sleep 2
+
+--echo # Switch to connection con1
+connection con1;
+UPDATE t1 SET x = 1 WHERE id = 0;
+SELECT * FROM t1;
+COMMIT;
+
+--echo # Switch to connection con2
+connection con2;
+--reap
+COMMIT;
+
+--echo # Switch to connection con1
+connection con1;
+SELECT * FROM t1;
+COMMIT;
---source include/deadlock.inc
+# Cleanup
+--echo # Switch to connection default + disconnect con1 and con2
+connection default;
+disconnect con1;
+disconnect con2;
+DROP TABLE t1,
+DROP TABLE t2;
diff -Nrup a/mysql-test/suite/falcon/t/falcon_options.test
b/mysql-test/suite/falcon/t/falcon_options.test
--- a/mysql-test/suite/falcon/t/falcon_options.test 2008-01-30 01:57:38 -06:00
+++ b/mysql-test/suite/falcon/t/falcon_options.test 2008-01-31 16:56:10 -06:00
@@ -2,7 +2,7 @@
SHOW VARIABLES LIKE 'falcon_%';
---real_sleep=10
+--real_sleep 3
# Test that these server variables are READ ONLY.
@@ -36,7 +36,7 @@ SET GLOBAL falcon_max_transaction_backlo
SELECT @@GLOBAL.falcon_max_transaction_backlog;
SELECT @@GLOBAL.falcon_record_memory_max;
-SET GLOBAL falcon_record_memory_max = 1073741824;
+SET GLOBAL falcon_record_memory_max = 536870912;
SELECT @@GLOBAL.falcon_record_memory_max;
@@ -44,5 +44,3 @@ SELECT @@GLOBAL.falcon_record_memory_max
--sorted_result
SELECT * FROM INFORMATION_SCHEMA.global_variables
WHERE variable_name LIKE 'falcon%';
-
---real_sleep=10
diff -Nrup a/storage/falcon/Dbb.cpp b/storage/falcon/Dbb.cpp
--- a/storage/falcon/Dbb.cpp 2008-01-30 01:34:12 -06:00
+++ b/storage/falcon/Dbb.cpp 2008-01-31 16:56:12 -06:00
@@ -153,12 +153,22 @@ Cache* Dbb::create(const char * fileName
odsVersion = ODS_VERSION;
odsMinorVersion = ODS_MINOR_VERSION;
sequence = 1;
- createFile(fileName, initialAllocation);
+
init (pageSz, (int) ((cacheSize + pageSz - 1) / pageSz));
- Hdr::create (this, fileType, transId, logRoot);
- PageInventoryPage::create (this, transId);
- SectionRootPage::create (this, transId);
- IndexRootPage::create (this, transId);
+ createFile(fileName, initialAllocation);
+ try
+ {
+ Hdr::create (this, fileType, transId, logRoot);
+ PageInventoryPage::create (this, transId);
+ SectionRootPage::create (this, transId);
+ IndexRootPage::create (this, transId);
+ }
+ catch(...)
+ {
+ closeFile();
+ deleteFile();
+ throw;
+ }
return cache;
}
diff -Nrup a/storage/falcon/IO.cpp b/storage/falcon/IO.cpp
--- a/storage/falcon/IO.cpp 2008-01-30 01:34:26 -06:00
+++ b/storage/falcon/IO.cpp 2008-01-31 16:56:14 -06:00
@@ -142,8 +142,10 @@ bool IO::openFile(const char * name, boo
}
if (fileId < 0)
- throw SQLEXCEPTION (CONNECTION_ERROR, "can't open file \"%s\": %s (%d)",
- name, strerror (errno), errno);
+ {
+ int sqlError = (errno == EACCES )? FILE_ACCESS_ERROR :CONNECTION_ERROR;
+ throw SQLEXCEPTION (sqlError, "can't open file \"%s\": %s (%d)", name, strerror
(errno), errno);
+ }
isReadOnly = readOnly;
@@ -184,8 +186,7 @@ bool IO::createFile(const char *name, ui
}
if (fileId < 0)
- throw SQLEXCEPTION (CONNECTION_ERROR, "can't create file \"%s\", %s (%d)",
- name, strerror (errno), errno);
+ throw SQLEXCEPTION (CONNECTION_ERROR,"can't create file \"%s\", %s (%d)", name,
strerror (errno), errno);
isReadOnly = false;
#ifndef _WIN32
diff -Nrup a/storage/falcon/SQLException.h b/storage/falcon/SQLException.h
--- a/storage/falcon/SQLException.h 2007-11-28 11:20:53 -06:00
+++ b/storage/falcon/SQLException.h 2008-01-31 16:56:16 -06:00
@@ -67,7 +67,8 @@ enum SqlCode {
TABLESPACE_EXIST_ERROR = -33,
TABLESPACE_NOT_EMPTY = -34,
TABLESPACE_NOT_EXIST_ERROR = -35,
- DEVICE_FULL = -36
+ DEVICE_FULL = -36,
+ FILE_ACCESS_ERROR = -37
};
class DllExport SQLException {
diff -Nrup a/storage/falcon/StorageHandler.cpp b/storage/falcon/StorageHandler.cpp
--- a/storage/falcon/StorageHandler.cpp 2008-01-30 01:36:01 -06:00
+++ b/storage/falcon/StorageHandler.cpp 2008-01-31 16:56:18 -06:00
@@ -102,6 +102,7 @@ StorageHandler::StorageHandler(int lockS
dictionaryConnection = NULL;
databaseList = NULL;
defaultDatabase = NULL;
+ initialized = false;
}
StorageHandler::~StorageHandler(void)
@@ -642,6 +643,9 @@ StorageConnection* StorageHandler::getSt
if (!defaultDatabase)
initialize();
+ if (!dictionaryConnection)
+ return NULL;
+
if (!tableShare->storageDatabase)
tableShare->findDatabase();
@@ -890,14 +894,16 @@ void StorageHandler::getTransactionSumma
void StorageHandler::initialize(void)
{
- if (defaultDatabase)
+
+ if (initialized)
return;
Sync sync(&syncObject, "StorageConnection::initialize");
sync.lock(Exclusive);
- if (defaultDatabase)
+ if (initialized)
return;
+ initialized = true;
defaultDatabase = getStorageDatabase(MASTER_NAME, MASTER_PATH);
@@ -907,8 +913,15 @@ void StorageHandler::initialize(void)
dictionaryConnection = defaultDatabase->getOpenConnection();
dropTempTables();
}
- catch (...)
+ catch (SQLException &e)
{
+ // No point in creating a database if we got memory error.
+ // On FILE_ACCESS_ERROR, an external application can temporarily lock the file.
+ // In this both cases, trying to create database in this case could eventually
+ // lead to "recreate" and data loss.
+ int err = e.getSqlcode();
+ if(err == OUT_OF_MEMORY_ERROR || err == FILE_ACCESS_ERROR)
+ return;
try
{
defaultDatabase->createDatabase();
diff -Nrup a/storage/falcon/StorageHandler.h b/storage/falcon/StorageHandler.h
--- a/storage/falcon/StorageHandler.h 2007-12-02 14:17:12 -06:00
+++ b/storage/falcon/StorageHandler.h 2008-01-31 16:56:20 -06:00
@@ -134,6 +134,7 @@ public:
StorageTableShare *tables[tableHashSize];
Connection *dictionaryConnection;
int mySqlLockSize;
+ bool initialized;
virtual void getFalconVersionInfo(InfoTable* infoTable);
};
diff -Nrup a/storage/falcon/StorageTableShare.cpp b/storage/falcon/StorageTableShare.cpp
--- a/storage/falcon/StorageTableShare.cpp 2008-01-30 01:36:04 -06:00
+++ b/storage/falcon/StorageTableShare.cpp 2008-01-31 16:56:23 -06:00
@@ -358,6 +358,8 @@ void StorageTableShare::load(void)
Sync sync(&storageHandler->dictionarySyncObject, "StorageTableShare::load");
sync.lock(Exclusive);
Connection *connection = storageHandler->getDictionaryConnection();
+ if (!connection)
+ return;
PreparedStatement *statement = connection->prepareStatement(
"select
given_schema_name,given_table_name,effective_schema_name,effective_table_name,tablespace_name
"
"from falcon.tables where pathname=?");
diff -Nrup a/storage/falcon/ha_falcon.cpp b/storage/falcon/ha_falcon.cpp
--- a/storage/falcon/ha_falcon.cpp 2008-01-31 11:23:34 -06:00
+++ b/storage/falcon/ha_falcon.cpp 2008-01-31 16:56:24 -06:00
@@ -189,12 +189,15 @@ int StorageInterface::falcon_init(void *
falcon_hton->flags = HTON_NO_FLAGS;
storageHandler->addNfsLogger(falcon_debug_mask, StorageInterface::logger, NULL);
- int repeatableRead = (falcon_consistent_read ?
+ int newRepeatableRead = (falcon_consistent_read ?
TRANSACTION_CONSISTENT_READ : TRANSACTION_WRITE_COMMITTED);
- if (isolation_levels[2] != repeatableRead)
+ if (isolation_levels[ISO_REPEATABLE_READ] != newRepeatableRead)
+ {
+ int oldRepeatableRead = isolation_levels[ISO_REPEATABLE_READ];
for (int i = 0; i < 4; i++)
- if ((i == 2) || (isolation_levels[i] == isolation_levels[2]))
- isolation_levels[i] = repeatableRead;
+ if (isolation_levels[i] == oldRepeatableRead)
+ isolation_levels[i] = newRepeatableRead;
+ }
if (falcon_debug_server)
storageHandler->startNfsServer();
@@ -3036,10 +3039,13 @@ void StorageInterface::updateConsistentR
int newRepeatableRead = (falcon_consistent_read ?
TRANSACTION_CONSISTENT_READ : TRANSACTION_WRITE_COMMITTED);
- if (isolation_levels[2] != newRepeatableRead)
+ if (isolation_levels[ISO_REPEATABLE_READ] != newRepeatableRead)
+ {
+ int oldRepeatableRead = isolation_levels[ISO_REPEATABLE_READ];
for (int i = 0; i < 4; i++)
- if ((i == 2) || (isolation_levels[i] == isolation_levels[2]))
+ if (isolation_levels[i] == oldRepeatableRead)
isolation_levels[i] = newRepeatableRead;
+ }
}
void StorageInterface::updateRecordMemoryMax(MYSQL_THD thd, struct st_mysql_sys_var*
variable, void* var_ptr, void* save)
| Thread |
|---|
| • bk commit into 6.0 tree (klewis:1.2787) | klewis | 31 Jan 2008 |