diff options
author | Bjorn Munch <bjorn.bunch@oracle.com> | 2010-08-04 12:19:51 +0200 |
---|---|---|
committer | Bjorn Munch <bjorn.bunch@oracle.com> | 2010-08-04 12:19:51 +0200 |
commit | f3f5e04a366d970ab4b90860b83350fbed0951c6 (patch) | |
tree | 1a1cb5fc96303ac85e0da44ae692d52e7145a4ad /mysql-test/r | |
parent | 2d2da6e79359668111b24734be0f9011f289a281 (diff) | |
parent | 22b86260dc274cee4d66f74b8178127ec4b47e72 (diff) | |
download | mariadb-git-f3f5e04a366d970ab4b90860b83350fbed0951c6.tar.gz |
merge from 5.1
Diffstat (limited to 'mysql-test/r')
26 files changed, 568 insertions, 4886 deletions
diff --git a/mysql-test/r/error_simulation.result b/mysql-test/r/error_simulation.result index 27e51a33112..b6b79cb596b 100644 --- a/mysql-test/r/error_simulation.result +++ b/mysql-test/r/error_simulation.result @@ -39,5 +39,49 @@ a 2 DROP TABLE t1; # +# Bug#42064: low memory crash when importing hex strings, in Item_hex_string::Item_hex_string +# +CREATE TABLE t1(a BLOB); +SET SESSION debug="+d,bug42064_simulate_oom"; +INSERT INTO t1 VALUES(""); +Got one of the listed errors +SET SESSION debug=DEFAULT; +DROP TABLE t1; +# +# Bug#41660: Sort-index_merge for non-first join table may require +# O(#scans) memory +# +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (0), (1), (2), (3), (4), (5), (6), (7), (8), (9); +CREATE TABLE t2 (a INT, b INT, filler CHAR(100), KEY(a), KEY(b)); +INSERT INTO t2 SELECT 1000, 1000, 'filler' FROM t1 A, t1 B, t1 C; +INSERT INTO t2 VALUES (1, 1, 'data'); +# the example query uses LEFT JOIN only for the sake of being able to +# demonstrate the issue with a very small dataset. (left outer join +# disables the use of join buffering, so we get the second table +# re-scanned for every record in the outer table. if we used inner join, +# we would need to have thousands of records and/or more columns in both +# tables so that the join buffer is filled and re-scans are triggered). +SET SESSION debug = '+d,only_one_Unique_may_be_created'; +EXPLAIN +SELECT * FROM t1 LEFT JOIN t2 ON ( t2.a < 10 OR t2.b < 10 ); +id select_type table type possible_keys key key_len ref rows Extra +x x x x x x x x x +x x x x x x x x x Using sort_union(a,b); Using where +SELECT * FROM t1 LEFT JOIN t2 ON ( t2.a < 10 OR t2.b < 10 ); +a a b filler +0 1 1 data +1 1 1 data +2 1 1 data +3 1 1 data +4 1 1 data +5 1 1 data +6 1 1 data +7 1 1 data +8 1 1 data +9 1 1 data +SET SESSION debug = DEFAULT; +DROP TABLE t1, t2; +# # End of 5.1 tests # diff --git a/mysql-test/r/explain.result b/mysql-test/r/explain.result index 8f2d704b312..f46fe8daaad 100644 --- a/mysql-test/r/explain.result +++ b/mysql-test/r/explain.result @@ -238,4 +238,17 @@ id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables 2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables DROP TABLE t1, t2; +# +# Bug #48573: difference of index selection between rpm binary and +# .tar.gz, windows vs linux.. +# +CREATE TABLE t1(c1 INT, c2 INT, c4 INT, c5 INT, KEY(c2, c5), KEY(c2, c4, c5)); +INSERT INTO t1 VALUES(4, 1, 1, 1); +INSERT INTO t1 VALUES(3, 1, 1, 1); +INSERT INTO t1 VALUES(2, 1, 1, 1); +INSERT INTO t1 VALUES(1, 1, 1, 1); +EXPLAIN SELECT c1 FROM t1 WHERE c2 = 1 AND c4 = 1 AND c5 = 1; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 ref c2,c2_2 c2 10 const,const 3 Using where +DROP TABLE t1; End of 5.1 tests. diff --git a/mysql-test/r/func_in.result b/mysql-test/r/func_in.result index ffdacc43735..fdeec2755ca 100644 --- a/mysql-test/r/func_in.result +++ b/mysql-test/r/func_in.result @@ -750,4 +750,24 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables DROP TABLE t1; # +# Bug#54477: Crash on IN / CASE with NULL arguments +# +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1), (2); +SELECT 1 IN (NULL, a) FROM t1; +1 IN (NULL, a) +1 +NULL +SELECT a IN (a, a) FROM t1 GROUP BY a WITH ROLLUP; +a IN (a, a) +1 +1 +NULL +SELECT CASE a WHEN a THEN a END FROM t1 GROUP BY a WITH ROLLUP; +CASE a WHEN a THEN a END +1 +2 +NULL +DROP TABLE t1; +# End of 5.1 tests diff --git a/mysql-test/r/func_isnull.result b/mysql-test/r/func_isnull.result index 20ddc87ee78..c1f5849c091 100644 --- a/mysql-test/r/func_isnull.result +++ b/mysql-test/r/func_isnull.result @@ -5,3 +5,17 @@ flush tables; select * from t1 where isnull(to_days(mydate)); id mydate drop table t1; +# +# Bug#53933 crash when using uncacheable subquery in the having clause of outer query +# +CREATE TABLE t1 (f1 INT); +INSERT INTO t1 VALUES (0),(0); +SELECT ISNULL((SELECT GET_LOCK('Bug#53933', 0) FROM t1 GROUP BY f1)) AS f2 +FROM t1 GROUP BY f1 HAVING f2 = f2; +f2 +0 +SELECT RELEASE_LOCK('Bug#53933'); +RELEASE_LOCK('Bug#53933') +1 +DROP TABLE t1; +End of 5.0 tests diff --git a/mysql-test/r/func_like.result b/mysql-test/r/func_like.result index 9338a76e320..21da211160b 100644 --- a/mysql-test/r/func_like.result +++ b/mysql-test/r/func_like.result @@ -169,3 +169,17 @@ select 'andre%' like 'andreÊ%' escape 'Ê'; select _cp1251'andre%' like convert('andreÊ%' using cp1251) escape 'Ê'; _cp1251'andre%' like convert('andreÊ%' using cp1251) escape 'Ê' 1 +End of 4.1 tests +# +# Bug #54575: crash when joining tables with unique set column +# +CREATE TABLE t1(a SET('a') NOT NULL, UNIQUE KEY(a)); +CREATE TABLE t2(b INT PRIMARY KEY); +INSERT INTO t1 VALUES (); +Warnings: +Warning 1364 Field 'a' doesn't have a default value +INSERT INTO t2 VALUES (1), (2), (3); +SELECT 1 FROM t2 JOIN t1 ON 1 LIKE a GROUP BY a; +1 +DROP TABLE t1, t2; +End of 5.1 tests diff --git a/mysql-test/r/group_min_max.result b/mysql-test/r/group_min_max.result index 01f27a498ef..6fef66b9d93 100644 --- a/mysql-test/r/group_min_max.result +++ b/mysql-test/r/group_min_max.result @@ -2767,4 +2767,17 @@ SELECT MIN( a ) FROM t1 WHERE a IS NULL; MIN( a ) NULL DROP TABLE t1; +# +# Bug#53859: Valgrind: opt_sum_query(TABLE_LIST*, List<Item>&, Item*) at +# opt_sum.cc:305 +# +CREATE TABLE t1 ( a INT, KEY (a) ); +INSERT INTO t1 VALUES (1), (2), (3); +SELECT MIN( a ) AS min_a +FROM t1 +WHERE a > 1 AND a IS NULL +ORDER BY min_a; +min_a +NULL +DROP TABLE t1; End of 5.1 tests diff --git a/mysql-test/r/handler_myisam.result b/mysql-test/r/handler_myisam.result index a970e20a2c0..b20b8dbb138 100644 --- a/mysql-test/r/handler_myisam.result +++ b/mysql-test/r/handler_myisam.result @@ -769,4 +769,97 @@ a 1 HANDLER t1 CLOSE; DROP TABLE t1; +# +# Bug #54007: assert in ha_myisam::index_next , HANDLER +# +CREATE TABLE t1(a INT, b INT, PRIMARY KEY(a), KEY b(b), KEY ab(a, b)); +HANDLER t1 OPEN; +HANDLER t1 READ FIRST; +a b +HANDLER t1 READ `PRIMARY` NEXT; +a b +HANDLER t1 READ ab NEXT; +a b +HANDLER t1 READ b NEXT; +a b +HANDLER t1 READ NEXT; +a b +HANDLER t1 CLOSE; +INSERT INTO t1 VALUES (2, 20), (1, 10), (4, 40), (3, 30); +HANDLER t1 OPEN; +HANDLER t1 READ FIRST; +a b +2 20 +HANDLER t1 READ NEXT; +a b +1 10 +HANDLER t1 READ `PRIMARY` NEXT; +a b +1 10 +HANDLER t1 READ `PRIMARY` NEXT; +a b +2 20 +HANDLER t1 READ ab NEXT; +a b +1 10 +HANDLER t1 READ ab NEXT; +a b +2 20 +HANDLER t1 READ b NEXT; +a b +1 10 +HANDLER t1 READ b NEXT; +a b +2 20 +HANDLER t1 READ b NEXT; +a b +3 30 +HANDLER t1 READ b NEXT; +a b +4 40 +HANDLER t1 READ b NEXT; +a b +HANDLER t1 READ NEXT; +a b +4 40 +HANDLER t1 READ NEXT; +a b +3 30 +HANDLER t1 READ NEXT; +a b +HANDLER t1 CLOSE; +HANDLER t1 OPEN; +HANDLER t1 READ FIRST; +a b +2 20 +HANDLER t1 READ `PRIMARY` PREV; +a b +4 40 +HANDLER t1 READ `PRIMARY` PREV; +a b +3 30 +HANDLER t1 READ b PREV; +a b +4 40 +HANDLER t1 READ b PREV; +a b +3 30 +HANDLER t1 CLOSE; +HANDLER t1 OPEN; +HANDLER t1 READ FIRST; +a b +2 20 +HANDLER t1 READ `PRIMARY` PREV LIMIT 3; +a b +4 40 +3 30 +2 20 +HANDLER t1 READ b NEXT LIMIT 5; +a b +1 10 +2 20 +3 30 +4 40 +HANDLER t1 CLOSE; +DROP TABLE t1; End of 5.1 tests diff --git a/mysql-test/r/information_schema.result b/mysql-test/r/information_schema.result index 4ed7e4e700b..b7b65598c6d 100644 --- a/mysql-test/r/information_schema.result +++ b/mysql-test/r/information_schema.result @@ -1747,4 +1747,14 @@ COUNT(*) DROP USER nonpriv; DROP TABLE db1.t1; DROP DATABASE db1; + +Bug#54422 query with = 'variables' + +CREATE TABLE variables(f1 INT); +SELECT COLUMN_DEFAULT, TABLE_NAME +FROM INFORMATION_SCHEMA.COLUMNS +WHERE INFORMATION_SCHEMA.COLUMNS.TABLE_NAME = 'variables'; +COLUMN_DEFAULT TABLE_NAME +NULL variables +DROP TABLE variables; End of 5.1 tests. diff --git a/mysql-test/r/innodb-autoinc-optimize.result b/mysql-test/r/innodb-autoinc-optimize.result deleted file mode 100644 index c6da43555b2..00000000000 --- a/mysql-test/r/innodb-autoinc-optimize.result +++ /dev/null @@ -1,9 +0,0 @@ -drop table if exists t1; -create table t1(a int not null auto_increment primary key) engine=innodb; -insert into t1 set a = -1; -optimize table t1; -Table Op Msg_type Msg_text -test.t1 optimize note Table does not support optimize, doing recreate + analyze instead -test.t1 optimize status OK -==== clean up ==== -DROP TABLE t1; diff --git a/mysql-test/r/innodb-ucs2.result b/mysql-test/r/innodb-ucs2.result deleted file mode 100644 index b6bff7d5f42..00000000000 --- a/mysql-test/r/innodb-ucs2.result +++ /dev/null @@ -1,314 +0,0 @@ -drop table if exists t1, t2; -create table t1 ( -a int, b char(10), c char(10), filler char(10), primary key(a, b(2)), unique key (a, c(2)) -) character set utf8 engine = innodb; -create table t2 ( -a int, b char(10), c char(10), filler char(10), primary key(a, b(2)), unique key (a, c(2)) -) character set ucs2 engine = innodb; -insert into t1 values (1,'abcdefg','abcdefg','one'); -insert into t1 values (2,'ijkilmn','ijkilmn','two'); -insert into t1 values (3,'qrstuvw','qrstuvw','three'); -insert into t1 values (4,_utf8 0xe880bd,_utf8 0xe880bd,'four'); -insert into t1 values (4,_utf8 0x5b,_utf8 0x5b,'five'); -insert into t1 values (4,_utf8 0xe880bde880bd,_utf8 0xe880bde880bd,'six'); -insert into t1 values (4,_utf8 0xe880bdD0B1e880bd,_utf8 0xe880bdD0B1e880bd,'seven'); -insert into t1 values (4,_utf8 0xD0B1,_utf8 0xD0B1,'eight'); -insert into t2 values (1,'abcdefg','abcdefg','one'); -insert into t2 values (2,'ijkilmn','ijkilmn','two'); -insert into t2 values (3,'qrstuvw','qrstuvw','three'); -insert into t2 values (4,_ucs2 0x00e400,_ucs2 0x00e400,'four'); -insert into t2 values (4,_ucs2 0x00640065,_ucs2 0x00640065,'five'); -insert into t2 values (4,_ucs2 0x00e400e50068,_ucs2 0x00e400e50068,'six'); -insert into t2 values (4,_ucs2 0x01fc,_ucs2 0x01fc,'seven'); -insert into t2 values (4,_ucs2 0x0120,_ucs2 0x0120,'eight'); -insert into t2 values (4,_ucs2 0x0563,_ucs2 0x0563,'ten'); -insert into t2 values (4,_ucs2 0x05630563,_ucs2 0x05630563,'eleven'); -insert into t2 values (4,_ucs2 0x0563001fc0563,_ucs2 0x0563001fc0563,'point'); -insert into t2 values (4,_ucs2 0x05612020,_ucs2 0x05612020,'taken'); -update t1 set filler = 'boo' where a = 1; -update t2 set filler ='email' where a = 4; -select a,hex(b),hex(c),filler from t1 order by filler; -a hex(b) hex(c) filler -1 61626364656667 61626364656667 boo -4 D0B1 D0B1 eight -4 5B 5B five -4 E880BD E880BD four -4 E880BDD0B1E880BD E880BDD0B1E880BD seven -4 E880BDE880BD E880BDE880BD six -3 71727374757677 71727374757677 three -2 696A6B696C6D6E 696A6B696C6D6E two -select a,hex(b),hex(c),filler from t2 order by filler; -a hex(b) hex(c) filler -4 05630563 05630563 email -4 0563 0563 email -4 05612020 05612020 email -4 01FC 01FC email -4 0120 0120 email -4 00640065 00640065 email -4 00E400E50068 00E400E50068 email -4 0000E400 0000E400 email -4 0000563001FC0563 0000563001FC0563 email -1 0061006200630064006500660067 0061006200630064006500660067 one -3 0071007200730074007500760077 0071007200730074007500760077 three -2 0069006A006B0069006C006D006E 0069006A006B0069006C006D006E two -drop table t1; -drop table t2; -create table t1 ( -a int, b varchar(10), c varchar(10), filler varchar(10), primary key(a, b(2)), unique key (a, c(2)) -) character set utf8 engine = innodb; -create table t2 ( -a int, b varchar(10), c varchar(10), filler varchar(10), primary key(a, b(2)), unique key (a, c(2)) -) character set ucs2 engine = innodb; -insert into t1 values (1,'abcdefg','abcdefg','one'); -insert into t1 values (2,'ijkilmn','ijkilmn','two'); -insert into t1 values (3,'qrstuvw','qrstuvw','three'); -insert into t1 values (4,_utf8 0xe880bd,_utf8 0xe880bd,'four'); -insert into t1 values (4,_utf8 0x5b,_utf8 0x5b,'five'); -insert into t1 values (4,_utf8 0xe880bde880bd,_utf8 0xe880bde880bd,'six'); -insert into t1 values (4,_utf8 0xe880bdD0B1e880bd,_utf8 0xe880bdD0B1e880bd,'seven'); -insert into t1 values (4,_utf8 0xD0B1,_utf8 0xD0B1,'eight'); -insert into t2 values (1,'abcdefg','abcdefg','one'); -insert into t2 values (2,'ijkilmn','ijkilmn','two'); -insert into t2 values (3,'qrstuvw','qrstuvw','three'); -insert into t2 values (4,_ucs2 0x00e400,_ucs2 0x00e400,'four'); -insert into t2 values (4,_ucs2 0x00640065,_ucs2 0x00640065,'five'); -insert into t2 values (4,_ucs2 0x00e400e50068,_ucs2 0x00e400e50068,'six'); -insert into t2 values (4,_ucs2 0x01fc,_ucs2 0x01fc,'seven'); -insert into t2 values (4,_ucs2 0x0120,_ucs2 0x0120,'eight'); -insert into t2 values (4,_ucs2 0x0563,_ucs2 0x0563,'ten'); -insert into t2 values (4,_ucs2 0x05630563,_ucs2 0x05630563,'eleven'); -insert into t2 values (4,_ucs2 0x0563001fc0563,_ucs2 0x0563001fc0563,'point'); -insert into t2 values (4,_ucs2 0x05612020,_ucs2 0x05612020,'taken'); -update t1 set filler = 'boo' where a = 1; -update t2 set filler ='email' where a = 4; -select a,hex(b),hex(c),filler from t1 order by filler; -a hex(b) hex(c) filler -1 61626364656667 61626364656667 boo -4 D0B1 D0B1 eight -4 5B 5B five -4 E880BD E880BD four -4 E880BDD0B1E880BD E880BDD0B1E880BD seven -4 E880BDE880BD E880BDE880BD six -3 71727374757677 71727374757677 three -2 696A6B696C6D6E 696A6B696C6D6E two -select a,hex(b),hex(c),filler from t2 order by filler; -a hex(b) hex(c) filler -4 05630563 05630563 email -4 0563 0563 email -4 05612020 05612020 email -4 01FC 01FC email -4 0120 0120 email -4 00640065 00640065 email -4 00E400E50068 00E400E50068 email -4 0000E400 0000E400 email -4 0000563001FC0563 0000563001FC0563 email -1 0061006200630064006500660067 0061006200630064006500660067 one -3 0071007200730074007500760077 0071007200730074007500760077 three -2 0069006A006B0069006C006D006E 0069006A006B0069006C006D006E two -drop table t1; -drop table t2; -create table t1 ( -a int, b text(10), c text(10), filler text(10), primary key(a, b(2)), unique key (a, c(2)) -) character set utf8 engine = innodb; -create table t2 ( -a int, b text(10), c text(10), filler text(10), primary key(a, b(2)), unique key (a, c(2)) -) character set ucs2 engine = innodb; -insert into t1 values (1,'abcdefg','abcdefg','one'); -insert into t1 values (2,'ijkilmn','ijkilmn','two'); -insert into t1 values (3,'qrstuvw','qrstuvw','three'); -insert into t1 values (4,_utf8 0xe880bd,_utf8 0xe880bd,'four'); -insert into t1 values (4,_utf8 0x5b,_utf8 0x5b,'five'); -insert into t1 values (4,_utf8 0xe880bde880bd,_utf8 0xe880bde880bd,'six'); -insert into t1 values (4,_utf8 0xe880bdD0B1e880bd,_utf8 0xe880bdD0B1e880bd,'seven'); -insert into t1 values (4,_utf8 0xD0B1,_utf8 0xD0B1,'eight'); -insert into t2 values (1,'abcdefg','abcdefg','one'); -insert into t2 values (2,'ijkilmn','ijkilmn','two'); -insert into t2 values (3,'qrstuvw','qrstuvw','three'); -insert into t2 values (4,_ucs2 0x00e400,_ucs2 0x00e400,'four'); -insert into t2 values (4,_ucs2 0x00640065,_ucs2 0x00640065,'five'); -insert into t2 values (4,_ucs2 0x00e400e50068,_ucs2 0x00e400e50068,'six'); -insert into t2 values (4,_ucs2 0x01fc,_ucs2 0x01fc,'seven'); -insert into t2 values (4,_ucs2 0x0120,_ucs2 0x0120,'eight'); -insert into t2 values (4,_ucs2 0x0563,_ucs2 0x0563,'ten'); -insert into t2 values (4,_ucs2 0x05630563,_ucs2 0x05630563,'eleven'); -insert into t2 values (4,_ucs2 0x0563001fc0563,_ucs2 0x0563001fc0563,'point'); -insert into t2 values (4,_ucs2 0x05612020,_ucs2 0x05612020,'taken'); -update t1 set filler = 'boo' where a = 1; -update t2 set filler ='email' where a = 4; -select a,hex(b),hex(c),filler from t1 order by filler; -a hex(b) hex(c) filler -1 61626364656667 61626364656667 boo -4 D0B1 D0B1 eight -4 5B 5B five -4 E880BD E880BD four -4 E880BDD0B1E880BD E880BDD0B1E880BD seven -4 E880BDE880BD E880BDE880BD six -3 71727374757677 71727374757677 three -2 696A6B696C6D6E 696A6B696C6D6E two -select a,hex(b),hex(c),filler from t2 order by filler; -a hex(b) hex(c) filler -4 0120 0120 email -4 01FC 01FC email -4 0563 0563 email -4 0000563001FC0563 0000563001FC0563 email -4 0000E400 0000E400 email -4 00640065 00640065 email -4 00E400E50068 00E400E50068 email -4 05612020 05612020 email -4 05630563 05630563 email -1 0061006200630064006500660067 0061006200630064006500660067 one -3 0071007200730074007500760077 0071007200730074007500760077 three -2 0069006A006B0069006C006D006E 0069006A006B0069006C006D006E two -drop table t1; -drop table t2; -create table t1 ( -a int, b blob(10), c blob(10), filler blob(10), primary key(a, b(2)), unique key (a, c(2)) -) character set utf8 engine = innodb; -create table t2 ( -a int, b blob(10), c blob(10), filler blob(10), primary key(a, b(2)), unique key (a, c(2)) -) character set ucs2 engine = innodb; -insert into t1 values (1,'abcdefg','abcdefg','one'); -insert into t1 values (2,'ijkilmn','ijkilmn','two'); -insert into t1 values (3,'qrstuvw','qrstuvw','three'); -insert into t1 values (4,_utf8 0xe880bd,_utf8 0xe880bd,'four'); -insert into t1 values (4,_utf8 0x5b,_utf8 0x5b,'five'); -insert into t1 values (4,_utf8 0xD0B1,_utf8 0xD0B1,'eight'); -insert into t2 values (1,'abcdefg','abcdefg','one'); -insert into t2 values (2,'ijkilmn','ijkilmn','two'); -insert into t2 values (3,'qrstuvw','qrstuvw','three'); -insert into t2 values (4,_ucs2 0x00e400,_ucs2 0x00e400,'four'); -insert into t2 values (4,_ucs2 0x00640065,_ucs2 0x00640065,'five'); -insert into t2 values (4,_ucs2 0x00e400e50068,_ucs2 0x00e400e50068,'six'); -insert into t2 values (4,_ucs2 0x01fc,_ucs2 0x01fc,'seven'); -insert into t2 values (4,_ucs2 0x0120,_ucs2 0x0120,'eight'); -insert into t2 values (4,_ucs2 0x0563,_ucs2 0x0563,'ten'); -insert into t2 values (4,_ucs2 0x05612020,_ucs2 0x05612020,'taken'); -update t1 set filler = 'boo' where a = 1; -update t2 set filler ='email' where a = 4; -select a,hex(b),hex(c),filler from t1 order by filler; -a hex(b) hex(c) filler -1 61626364656667 61626364656667 boo -4 D0B1 D0B1 eight -4 5B 5B five -4 E880BD E880BD four -3 71727374757677 71727374757677 three -2 696A6B696C6D6E 696A6B696C6D6E two -select a,hex(b),hex(c),filler from t2 order by filler; -a hex(b) hex(c) filler -4 0000E400 0000E400 email -4 00640065 00640065 email -4 00E400E50068 00E400E50068 email -4 0120 0120 email -4 01FC 01FC email -4 05612020 05612020 email -4 0563 0563 email -1 61626364656667 61626364656667 one -3 71727374757677 71727374757677 three -2 696A6B696C6D6E 696A6B696C6D6E two -drop table t1; -drop table t2; -commit; -CREATE TABLE t1 ( -ind enum('0','1','2') NOT NULL default '0', -string1 varchar(250) NOT NULL, -PRIMARY KEY (ind) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -CREATE TABLE t2 ( -ind enum('0','1','2') NOT NULL default '0', -string1 varchar(250) NOT NULL, -PRIMARY KEY (ind) -) ENGINE=InnoDB DEFAULT CHARSET=ucs2; -INSERT INTO t1 VALUES ('1', ''),('2', ''); -INSERT INTO t2 VALUES ('1', ''),('2', ''); -SELECT hex(ind),hex(string1) FROM t1 ORDER BY string1; -hex(ind) hex(string1) -31 -32 -SELECT hex(ind),hex(string1) FROM t2 ORDER BY string1; -hex(ind) hex(string1) -0031 -0032 -drop table t1,t2; -CREATE TABLE t1 ( -ind set('0','1','2') NOT NULL default '0', -string1 varchar(250) NOT NULL, -PRIMARY KEY (ind) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -CREATE TABLE t2 ( -ind set('0','1','2') NOT NULL default '0', -string1 varchar(250) NOT NULL, -PRIMARY KEY (ind) -) ENGINE=InnoDB DEFAULT CHARSET=ucs2; -INSERT INTO t1 VALUES ('1', ''),('2', ''); -INSERT INTO t2 VALUES ('1', ''),('2', ''); -SELECT hex(ind),hex(string1) FROM t1 ORDER BY string1; -hex(ind) hex(string1) -31 -32 -SELECT hex(ind),hex(string1) FROM t2 ORDER BY string1; -hex(ind) hex(string1) -0031 -0032 -drop table t1,t2; -CREATE TABLE t1 ( -ind bit not null, -string1 varchar(250) NOT NULL, -PRIMARY KEY (ind) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -CREATE TABLE t2 ( -ind bit not null, -string1 varchar(250) NOT NULL, -PRIMARY KEY (ind) -) ENGINE=InnoDB DEFAULT CHARSET=ucs2; -insert into t1 values(0,''),(1,''); -insert into t2 values(0,''),(1,''); -select hex(ind),hex(string1) from t1 order by string1; -hex(ind) hex(string1) -0 -1 -select hex(ind),hex(string1) from t2 order by string1; -hex(ind) hex(string1) -0 -1 -drop table t1,t2; -create table t2 ( -a int, b char(10), filler char(10), primary key(a, b(2)) -) character set utf8 engine = innodb; -insert into t2 values (1,'abcdefg','one'); -insert into t2 values (2,'ijkilmn','two'); -insert into t2 values (3, 'qrstuvw','three'); -update t2 set a=5, filler='booo' where a=1; -drop table t2; -create table t2 ( -a int, b char(10), filler char(10), primary key(a, b(2)) -) character set ucs2 engine = innodb; -insert into t2 values (1,'abcdefg','one'); -insert into t2 values (2,'ijkilmn','two'); -insert into t2 values (3, 'qrstuvw','three'); -update t2 set a=5, filler='booo' where a=1; -drop table t2; -create table t1(a int not null, b char(110),primary key(a,b(100))) engine=innodb default charset=utf8; -insert into t1 values(1,'abcdefg'),(2,'defghijk'); -insert into t1 values(6,_utf8 0xD0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1); -insert into t1 values(7,_utf8 0xD0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B2); -select a,hex(b) from t1 order by b; -a hex(b) -1 61626364656667 -2 6465666768696A6B -6 D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1 -7 D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B2 -update t1 set b = 'three' where a = 6; -drop table t1; -create table t1(a int not null, b text(110),primary key(a,b(100))) engine=innodb default charset=utf8; -insert into t1 values(1,'abcdefg'),(2,'defghijk'); -insert into t1 values(6,_utf8 0xD0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1); -insert into t1 values(7,_utf8 0xD0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B2); -select a,hex(b) from t1 order by b; -a hex(b) -1 61626364656667 -2 6465666768696A6B -6 D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1 -7 D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B2 -update t1 set b = 'three' where a = 6; -drop table t1; -End of 5.0 tests diff --git a/mysql-test/r/innodb_autoinc_lock_mode_zero.result b/mysql-test/r/innodb_autoinc_lock_mode_zero.result deleted file mode 100644 index 3d016684338..00000000000 --- a/mysql-test/r/innodb_autoinc_lock_mode_zero.result +++ /dev/null @@ -1,39 +0,0 @@ -drop table if exists t1; -CREATE TABLE t1 ( -id int(11) NOT NULL auto_increment, -ggid varchar(32) binary DEFAULT '' NOT NULL, -email varchar(64) DEFAULT '' NOT NULL, -passwd varchar(32) binary DEFAULT '' NOT NULL, -PRIMARY KEY (id), -UNIQUE ggid (ggid) -) ENGINE=innodb; -insert into t1 (ggid,passwd) values ('test1','xxx'); -insert into t1 (ggid,passwd) values ('test2','yyy'); -insert into t1 (ggid,passwd) values ('test2','this will fail'); -ERROR 23000: Duplicate entry 'test2' for key 'ggid' -insert into t1 (ggid,id) values ('this will fail',1); -ERROR 23000: Duplicate entry '1' for key 'PRIMARY' -select * from t1 where ggid='test1'; -id ggid email passwd -1 test1 xxx -select * from t1 where passwd='xxx'; -id ggid email passwd -1 test1 xxx -select * from t1 where id=2; -id ggid email passwd -2 test2 yyy -replace into t1 (ggid,id) values ('this will work',1); -replace into t1 (ggid,passwd) values ('test2','this will work'); -update t1 set id=100,ggid='test2' where id=1; -ERROR 23000: Duplicate entry 'test2' for key 'ggid' -select * from t1; -id ggid email passwd -1 this will work -3 test2 this will work -select * from t1 where id=1; -id ggid email passwd -1 this will work -select * from t1 where id=999; -id ggid email passwd -drop table t1; -End of tests diff --git a/mysql-test/r/innodb_bug30919.result b/mysql-test/r/innodb_bug30919.result deleted file mode 100644 index 42aa4ff302b..00000000000 --- a/mysql-test/r/innodb_bug30919.result +++ /dev/null @@ -1,1043 +0,0 @@ -use test; -CREATE TABLE test.part_tbl(id MEDIUMINT NOT NULL AUTO_INCREMENT, -dt TIMESTAMP, user CHAR(255), uuidf LONGBLOB, -fkid MEDIUMINT, filler VARCHAR(255), -PRIMARY KEY(id)) ENGINE='innodb' -PARTITION BY RANGE(id) -SUBPARTITION BY hash(id) subpartitions 2 -(PARTITION pa3 values less than (42), -PARTITION pa6 values less than (60), -PARTITION pa7 values less than (70), -PARTITION pa8 values less than (80), -PARTITION pa9 values less than (90), -PARTITION pa10 values less than (100), -PARTITION pa11 values less than MAXVALUE); -CREATE PROCEDURE test.proc_part() -BEGIN -DECLARE ins_count INT DEFAULT 1000; -DECLARE del_count INT; -DECLARE cur_user VARCHAR(255); -DECLARE local_uuid VARCHAR(255); -DECLARE local_time TIMESTAMP; -SET local_time= NOW(); -SET cur_user= CURRENT_USER(); -SET local_uuid= UUID(); -WHILE ins_count > 0 DO -INSERT INTO test.part_tbl VALUES (NULL, NOW(), USER() , UUID(), -ins_count,'Going to test MBR for MySQL'); -SET ins_count = ins_count - 1; -END WHILE; -SELECT MAX(id) FROM test.part_tbl INTO del_count; -WHILE del_count > 0 DO -DELETE FROM test.part_tbl WHERE id = del_count; -select count(*) as internal_count, del_count -- these two lines are for -FROM test.part_tbl; -- debug to show the problem -SET del_count = del_count - 2; -END WHILE; -END| -CALL test.proc_part(); -internal_count del_count -999 1000 -internal_count del_count -998 998 -internal_count del_count -997 996 -internal_count del_count -996 994 -internal_count del_count -995 992 -internal_count del_count -994 990 -internal_count del_count -993 988 -internal_count del_count -992 986 -internal_count del_count -991 984 -internal_count del_count -990 982 -internal_count del_count -989 980 -internal_count del_count -988 978 -internal_count del_count -987 976 -internal_count del_count -986 974 -internal_count del_count -985 972 -internal_count del_count -984 970 -internal_count del_count -983 968 -internal_count del_count -982 966 -internal_count del_count -981 964 -internal_count del_count -980 962 -internal_count del_count -979 960 -internal_count del_count -978 958 -internal_count del_count -977 956 -internal_count del_count -976 954 -internal_count del_count -975 952 -internal_count del_count -974 950 -internal_count del_count -973 948 -internal_count del_count -972 946 -internal_count del_count -971 944 -internal_count del_count -970 942 -internal_count del_count -969 940 -internal_count del_count -968 938 -internal_count del_count -967 936 -internal_count del_count -966 934 -internal_count del_count -965 932 -internal_count del_count -964 930 -internal_count del_count -963 928 -internal_count del_count -962 926 -internal_count del_count -961 924 -internal_count del_count -960 922 -internal_count del_count -959 920 -internal_count del_count -958 918 -internal_count del_count -957 916 -internal_count del_count -956 914 -internal_count del_count -955 912 -internal_count del_count -954 910 -internal_count del_count -953 908 -internal_count del_count -952 906 -internal_count del_count -951 904 -internal_count del_count -950 902 -internal_count del_count -949 900 -internal_count del_count -948 898 -internal_count del_count -947 896 -internal_count del_count -946 894 -internal_count del_count -945 892 -internal_count del_count -944 890 -internal_count del_count -943 888 -internal_count del_count -942 886 -internal_count del_count -941 884 -internal_count del_count -940 882 -internal_count del_count -939 880 -internal_count del_count -938 878 -internal_count del_count -937 876 -internal_count del_count -936 874 -internal_count del_count -935 872 -internal_count del_count -934 870 -internal_count del_count -933 868 -internal_count del_count -932 866 -internal_count del_count -931 864 -internal_count del_count -930 862 -internal_count del_count -929 860 -internal_count del_count -928 858 -internal_count del_count -927 856 -internal_count del_count -926 854 -internal_count del_count -925 852 -internal_count del_count -924 850 -internal_count del_count -923 848 -internal_count del_count -922 846 -internal_count del_count -921 844 -internal_count del_count -920 842 -internal_count del_count -919 840 -internal_count del_count -918 838 -internal_count del_count -917 836 -internal_count del_count -916 834 -internal_count del_count -915 832 -internal_count del_count -914 830 -internal_count del_count -913 828 -internal_count del_count -912 826 -internal_count del_count -911 824 -internal_count del_count -910 822 -internal_count del_count -909 820 -internal_count del_count -908 818 -internal_count del_count -907 816 -internal_count del_count -906 814 -internal_count del_count -905 812 -internal_count del_count -904 810 -internal_count del_count -903 808 -internal_count del_count -902 806 -internal_count del_count -901 804 -internal_count del_count -900 802 -internal_count del_count -899 800 -internal_count del_count -898 798 -internal_count del_count -897 796 -internal_count del_count -896 794 -internal_count del_count -895 792 -internal_count del_count -894 790 -internal_count del_count -893 788 -internal_count del_count -892 786 -internal_count del_count -891 784 -internal_count del_count -890 782 -internal_count del_count -889 780 -internal_count del_count -888 778 -internal_count del_count -887 776 -internal_count del_count -886 774 -internal_count del_count -885 772 -internal_count del_count -884 770 -internal_count del_count -883 768 -internal_count del_count -882 766 -internal_count del_count -881 764 -internal_count del_count -880 762 -internal_count del_count -879 760 -internal_count del_count -878 758 -internal_count del_count -877 756 -internal_count del_count -876 754 -internal_count del_count -875 752 -internal_count del_count -874 750 -internal_count del_count -873 748 -internal_count del_count -872 746 -internal_count del_count -871 744 -internal_count del_count -870 742 -internal_count del_count -869 740 -internal_count del_count -868 738 -internal_count del_count -867 736 -internal_count del_count -866 734 -internal_count del_count -865 732 -internal_count del_count -864 730 -internal_count del_count -863 728 -internal_count del_count -862 726 -internal_count del_count -861 724 -internal_count del_count -860 722 -internal_count del_count -859 720 -internal_count del_count -858 718 -internal_count del_count -857 716 -internal_count del_count -856 714 -internal_count del_count -855 712 -internal_count del_count -854 710 -internal_count del_count -853 708 -internal_count del_count -852 706 -internal_count del_count -851 704 -internal_count del_count -850 702 -internal_count del_count -849 700 -internal_count del_count -848 698 -internal_count del_count -847 696 -internal_count del_count -846 694 -internal_count del_count -845 692 -internal_count del_count -844 690 -internal_count del_count -843 688 -internal_count del_count -842 686 -internal_count del_count -841 684 -internal_count del_count -840 682 -internal_count del_count -839 680 -internal_count del_count -838 678 -internal_count del_count -837 676 -internal_count del_count -836 674 -internal_count del_count -835 672 -internal_count del_count -834 670 -internal_count del_count -833 668 -internal_count del_count -832 666 -internal_count del_count -831 664 -internal_count del_count -830 662 -internal_count del_count -829 660 -internal_count del_count -828 658 -internal_count del_count -827 656 -internal_count del_count -826 654 -internal_count del_count -825 652 -internal_count del_count -824 650 -internal_count del_count -823 648 -internal_count del_count -822 646 -internal_count del_count -821 644 -internal_count del_count -820 642 -internal_count del_count -819 640 -internal_count del_count -818 638 -internal_count del_count -817 636 -internal_count del_count -816 634 -internal_count del_count -815 632 -internal_count del_count -814 630 -internal_count del_count -813 628 -internal_count del_count -812 626 -internal_count del_count -811 624 -internal_count del_count -810 622 -internal_count del_count -809 620 -internal_count del_count -808 618 -internal_count del_count -807 616 -internal_count del_count -806 614 -internal_count del_count -805 612 -internal_count del_count -804 610 -internal_count del_count -803 608 -internal_count del_count -802 606 -internal_count del_count -801 604 -internal_count del_count -800 602 -internal_count del_count -799 600 -internal_count del_count -798 598 -internal_count del_count -797 596 -internal_count del_count -796 594 -internal_count del_count -795 592 -internal_count del_count -794 590 -internal_count del_count -793 588 -internal_count del_count -792 586 -internal_count del_count -791 584 -internal_count del_count -790 582 -internal_count del_count -789 580 -internal_count del_count -788 578 -internal_count del_count -787 576 -internal_count del_count -786 574 -internal_count del_count -785 572 -internal_count del_count -784 570 -internal_count del_count -783 568 -internal_count del_count -782 566 -internal_count del_count -781 564 -internal_count del_count -780 562 -internal_count del_count -779 560 -internal_count del_count -778 558 -internal_count del_count -777 556 -internal_count del_count -776 554 -internal_count del_count -775 552 -internal_count del_count -774 550 -internal_count del_count -773 548 -internal_count del_count -772 546 -internal_count del_count -771 544 -internal_count del_count -770 542 -internal_count del_count -769 540 -internal_count del_count -768 538 -internal_count del_count -767 536 -internal_count del_count -766 534 -internal_count del_count -765 532 -internal_count del_count -764 530 -internal_count del_count -763 528 -internal_count del_count -762 526 -internal_count del_count -761 524 -internal_count del_count -760 522 -internal_count del_count -759 520 -internal_count del_count -758 518 -internal_count del_count -757 516 -internal_count del_count -756 514 -internal_count del_count -755 512 -internal_count del_count -754 510 -internal_count del_count -753 508 -internal_count del_count -752 506 -internal_count del_count -751 504 -internal_count del_count -750 502 -internal_count del_count -749 500 -internal_count del_count -748 498 -internal_count del_count -747 496 -internal_count del_count -746 494 -internal_count del_count -745 492 -internal_count del_count -744 490 -internal_count del_count -743 488 -internal_count del_count -742 486 -internal_count del_count -741 484 -internal_count del_count -740 482 -internal_count del_count -739 480 -internal_count del_count -738 478 -internal_count del_count -737 476 -internal_count del_count -736 474 -internal_count del_count -735 472 -internal_count del_count -734 470 -internal_count del_count -733 468 -internal_count del_count -732 466 -internal_count del_count -731 464 -internal_count del_count -730 462 -internal_count del_count -729 460 -internal_count del_count -728 458 -internal_count del_count -727 456 -internal_count del_count -726 454 -internal_count del_count -725 452 -internal_count del_count -724 450 -internal_count del_count -723 448 -internal_count del_count -722 446 -internal_count del_count -721 444 -internal_count del_count -720 442 -internal_count del_count -719 440 -internal_count del_count -718 438 -internal_count del_count -717 436 -internal_count del_count -716 434 -internal_count del_count -715 432 -internal_count del_count -714 430 -internal_count del_count -713 428 -internal_count del_count -712 426 -internal_count del_count -711 424 -internal_count del_count -710 422 -internal_count del_count -709 420 -internal_count del_count -708 418 -internal_count del_count -707 416 -internal_count del_count -706 414 -internal_count del_count -705 412 -internal_count del_count -704 410 -internal_count del_count -703 408 -internal_count del_count -702 406 -internal_count del_count -701 404 -internal_count del_count -700 402 -internal_count del_count -699 400 -internal_count del_count -698 398 -internal_count del_count -697 396 -internal_count del_count -696 394 -internal_count del_count -695 392 -internal_count del_count -694 390 -internal_count del_count -693 388 -internal_count del_count -692 386 -internal_count del_count -691 384 -internal_count del_count -690 382 -internal_count del_count -689 380 -internal_count del_count -688 378 -internal_count del_count -687 376 -internal_count del_count -686 374 -internal_count del_count -685 372 -internal_count del_count -684 370 -internal_count del_count -683 368 -internal_count del_count -682 366 -internal_count del_count -681 364 -internal_count del_count -680 362 -internal_count del_count -679 360 -internal_count del_count -678 358 -internal_count del_count -677 356 -internal_count del_count -676 354 -internal_count del_count -675 352 -internal_count del_count -674 350 -internal_count del_count -673 348 -internal_count del_count -672 346 -internal_count del_count -671 344 -internal_count del_count -670 342 -internal_count del_count -669 340 -internal_count del_count -668 338 -internal_count del_count -667 336 -internal_count del_count -666 334 -internal_count del_count -665 332 -internal_count del_count -664 330 -internal_count del_count -663 328 -internal_count del_count -662 326 -internal_count del_count -661 324 -internal_count del_count -660 322 -internal_count del_count -659 320 -internal_count del_count -658 318 -internal_count del_count -657 316 -internal_count del_count -656 314 -internal_count del_count -655 312 -internal_count del_count -654 310 -internal_count del_count -653 308 -internal_count del_count -652 306 -internal_count del_count -651 304 -internal_count del_count -650 302 -internal_count del_count -649 300 -internal_count del_count -648 298 -internal_count del_count -647 296 -internal_count del_count -646 294 -internal_count del_count -645 292 -internal_count del_count -644 290 -internal_count del_count -643 288 -internal_count del_count -642 286 -internal_count del_count -641 284 -internal_count del_count -640 282 -internal_count del_count -639 280 -internal_count del_count -638 278 -internal_count del_count -637 276 -internal_count del_count -636 274 -internal_count del_count -635 272 -internal_count del_count -634 270 -internal_count del_count -633 268 -internal_count del_count -632 266 -internal_count del_count -631 264 -internal_count del_count -630 262 -internal_count del_count -629 260 -internal_count del_count -628 258 -internal_count del_count -627 256 -internal_count del_count -626 254 -internal_count del_count -625 252 -internal_count del_count -624 250 -internal_count del_count -623 248 -internal_count del_count -622 246 -internal_count del_count -621 244 -internal_count del_count -620 242 -internal_count del_count -619 240 -internal_count del_count -618 238 -internal_count del_count -617 236 -internal_count del_count -616 234 -internal_count del_count -615 232 -internal_count del_count -614 230 -internal_count del_count -613 228 -internal_count del_count -612 226 -internal_count del_count -611 224 -internal_count del_count -610 222 -internal_count del_count -609 220 -internal_count del_count -608 218 -internal_count del_count -607 216 -internal_count del_count -606 214 -internal_count del_count -605 212 -internal_count del_count -604 210 -internal_count del_count -603 208 -internal_count del_count -602 206 -internal_count del_count -601 204 -internal_count del_count -600 202 -internal_count del_count -599 200 -internal_count del_count -598 198 -internal_count del_count -597 196 -internal_count del_count -596 194 -internal_count del_count -595 192 -internal_count del_count -594 190 -internal_count del_count -593 188 -internal_count del_count -592 186 -internal_count del_count -591 184 -internal_count del_count -590 182 -internal_count del_count -589 180 -internal_count del_count -588 178 -internal_count del_count -587 176 -internal_count del_count -586 174 -internal_count del_count -585 172 -internal_count del_count -584 170 -internal_count del_count -583 168 -internal_count del_count -582 166 -internal_count del_count -581 164 -internal_count del_count -580 162 -internal_count del_count -579 160 -internal_count del_count -578 158 -internal_count del_count -577 156 -internal_count del_count -576 154 -internal_count del_count -575 152 -internal_count del_count -574 150 -internal_count del_count -573 148 -internal_count del_count -572 146 -internal_count del_count -571 144 -internal_count del_count -570 142 -internal_count del_count -569 140 -internal_count del_count -568 138 -internal_count del_count -567 136 -internal_count del_count -566 134 -internal_count del_count -565 132 -internal_count del_count -564 130 -internal_count del_count -563 128 -internal_count del_count -562 126 -internal_count del_count -561 124 -internal_count del_count -560 122 -internal_count del_count -559 120 -internal_count del_count -558 118 -internal_count del_count -557 116 -internal_count del_count -556 114 -internal_count del_count -555 112 -internal_count del_count -554 110 -internal_count del_count -553 108 -internal_count del_count -552 106 -internal_count del_count -551 104 -internal_count del_count -550 102 -internal_count del_count -549 100 -internal_count del_count -548 98 -internal_count del_count -547 96 -internal_count del_count -546 94 -internal_count del_count -545 92 -internal_count del_count -544 90 -internal_count del_count -543 88 -internal_count del_count -542 86 -internal_count del_count -541 84 -internal_count del_count -540 82 -internal_count del_count -539 80 -internal_count del_count -538 78 -internal_count del_count -537 76 -internal_count del_count -536 74 -internal_count del_count -535 72 -internal_count del_count -534 70 -internal_count del_count -533 68 -internal_count del_count -532 66 -internal_count del_count -531 64 -internal_count del_count -530 62 -internal_count del_count -529 60 -internal_count del_count -528 58 -internal_count del_count -527 56 -internal_count del_count -526 54 -internal_count del_count -525 52 -internal_count del_count -524 50 -internal_count del_count -523 48 -internal_count del_count -522 46 -internal_count del_count -521 44 -internal_count del_count -520 42 -internal_count del_count -519 40 -internal_count del_count -518 38 -internal_count del_count -517 36 -internal_count del_count -516 34 -internal_count del_count -515 32 -internal_count del_count -514 30 -internal_count del_count -513 28 -internal_count del_count -512 26 -internal_count del_count -511 24 -internal_count del_count -510 22 -internal_count del_count -509 20 -internal_count del_count -508 18 -internal_count del_count -507 16 -internal_count del_count -506 14 -internal_count del_count -505 12 -internal_count del_count -504 10 -internal_count del_count -503 8 -internal_count del_count -502 6 -internal_count del_count -501 4 -internal_count del_count -500 2 -select count(*) as Part from test.part_tbl; -Part -500 -DROP PROCEDURE test.proc_part; -DROP TABLE test.part_tbl; diff --git a/mysql-test/r/innodb_bug42419.result b/mysql-test/r/innodb_bug42419.result deleted file mode 100644 index f304bb634cb..00000000000 --- a/mysql-test/r/innodb_bug42419.result +++ /dev/null @@ -1,17 +0,0 @@ -CREATE TABLE t1 (a INT AUTO_INCREMENT PRIMARY KEY, b INT) ENGINE = InnoDB; -INSERT INTO t1 VALUES (1,1),(2,2),(3,3); -COMMIT; -SET AUTOCOMMIT = 0; -CREATE TEMPORARY TABLE t1_tmp ( b INT ); -INSERT INTO t1_tmp (b) SELECT b FROM t1 WHERE a = 3; -INSERT INTO t1_tmp (b) SELECT b FROM t1 WHERE a = 2; -SET AUTOCOMMIT = 0; -CREATE TEMPORARY TABLE t2_tmp ( a int, new_a int ); -INSERT INTO t2_tmp VALUES (1,51),(2,52),(3,53); -UPDATE t1 SET a = (SELECT new_a FROM t2_tmp WHERE t2_tmp.a = t1.a) WHERE a = 1; -UPDATE t1 SET a = (SELECT new_a FROM t2_tmp WHERE t2_tmp.a = t1.a) WHERE a = 2; -INSERT INTO t1_tmp (b) SELECT b FROM t1 WHERE a = 1; -ERROR 40001: Deadlock found when trying to get lock; try restarting transaction -Reap the server message for connection user2 UPDATE t1 ... -UPDATE t1 SET a = (SELECT new_a FROM t2_tmp WHERE t2_tmp.a = t1.a) WHERE a = 3; -DROP TABLE t1; diff --git a/mysql-test/r/innodb_gis.result b/mysql-test/r/innodb_gis.result deleted file mode 100644 index c6c775afc9f..00000000000 --- a/mysql-test/r/innodb_gis.result +++ /dev/null @@ -1,589 +0,0 @@ -SET storage_engine=innodb; -DROP TABLE IF EXISTS t1, gis_point, gis_line, gis_polygon, gis_multi_point, gis_multi_line, gis_multi_polygon, gis_geometrycollection, gis_geometry; -CREATE TABLE gis_point (fid INTEGER PRIMARY KEY AUTO_INCREMENT, g POINT); -CREATE TABLE gis_line (fid INTEGER PRIMARY KEY AUTO_INCREMENT, g LINESTRING); -CREATE TABLE gis_polygon (fid INTEGER PRIMARY KEY AUTO_INCREMENT, g POLYGON); -CREATE TABLE gis_multi_point (fid INTEGER PRIMARY KEY AUTO_INCREMENT, g MULTIPOINT); -CREATE TABLE gis_multi_line (fid INTEGER PRIMARY KEY AUTO_INCREMENT, g MULTILINESTRING); -CREATE TABLE gis_multi_polygon (fid INTEGER PRIMARY KEY AUTO_INCREMENT, g MULTIPOLYGON); -CREATE TABLE gis_geometrycollection (fid INTEGER PRIMARY KEY AUTO_INCREMENT, g GEOMETRYCOLLECTION); -CREATE TABLE gis_geometry (fid INTEGER PRIMARY KEY AUTO_INCREMENT, g GEOMETRY); -SHOW CREATE TABLE gis_point; -Table Create Table -gis_point CREATE TABLE `gis_point` ( - `fid` int(11) NOT NULL AUTO_INCREMENT, - `g` point DEFAULT NULL, - PRIMARY KEY (`fid`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1 -SHOW FIELDS FROM gis_point; -Field Type Null Key Default Extra -fid int(11) NO PRI NULL auto_increment -g point YES NULL -SHOW FIELDS FROM gis_line; -Field Type Null Key Default Extra -fid int(11) NO PRI NULL auto_increment -g linestring YES NULL -SHOW FIELDS FROM gis_polygon; -Field Type Null Key Default Extra -fid int(11) NO PRI NULL auto_increment -g polygon YES NULL -SHOW FIELDS FROM gis_multi_point; -Field Type Null Key Default Extra -fid int(11) NO PRI NULL auto_increment -g multipoint YES NULL -SHOW FIELDS FROM gis_multi_line; -Field Type Null Key Default Extra -fid int(11) NO PRI NULL auto_increment -g multilinestring YES NULL -SHOW FIELDS FROM gis_multi_polygon; -Field Type Null Key Default Extra -fid int(11) NO PRI NULL auto_increment -g multipolygon YES NULL -SHOW FIELDS FROM gis_geometrycollection; -Field Type Null Key Default Extra -fid int(11) NO PRI NULL auto_increment -g geometrycollection YES NULL -SHOW FIELDS FROM gis_geometry; -Field Type Null Key Default Extra -fid int(11) NO PRI NULL auto_increment -g geometry YES NULL -INSERT INTO gis_point VALUES -(101, PointFromText('POINT(10 10)')), -(102, PointFromText('POINT(20 10)')), -(103, PointFromText('POINT(20 20)')), -(104, PointFromWKB(AsWKB(PointFromText('POINT(10 20)')))); -INSERT INTO gis_line VALUES -(105, LineFromText('LINESTRING(0 0,0 10,10 0)')), -(106, LineStringFromText('LINESTRING(10 10,20 10,20 20,10 20,10 10)')), -(107, LineStringFromWKB(LineString(Point(10, 10), Point(40, 10)))); -INSERT INTO gis_polygon VALUES -(108, PolygonFromText('POLYGON((10 10,20 10,20 20,10 20,10 10))')), -(109, PolyFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))')), -(110, PolyFromWKB(Polygon(LineString(Point(0, 0), Point(30, 0), Point(30, 30), Point(0, 0))))); -INSERT INTO gis_multi_point VALUES -(111, MultiPointFromText('MULTIPOINT(0 0,10 10,10 20,20 20)')), -(112, MPointFromText('MULTIPOINT(1 1,11 11,11 21,21 21)')), -(113, MPointFromWKB(MultiPoint(Point(3, 6), Point(4, 10)))); -INSERT INTO gis_multi_line VALUES -(114, MultiLineStringFromText('MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))')), -(115, MLineFromText('MULTILINESTRING((10 48,10 21,10 0))')), -(116, MLineFromWKB(MultiLineString(LineString(Point(1, 2), Point(3, 5)), LineString(Point(2, 5), Point(5, 8), Point(21, 7))))); -INSERT INTO gis_multi_polygon VALUES -(117, MultiPolygonFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))')), -(118, MPolyFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))')), -(119, MPolyFromWKB(MultiPolygon(Polygon(LineString(Point(0, 3), Point(3, 3), Point(3, 0), Point(0, 3)))))); -INSERT INTO gis_geometrycollection VALUES -(120, GeomCollFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))')), -(121, GeometryFromWKB(GeometryCollection(Point(44, 6), LineString(Point(3, 6), Point(7, 9))))); -INSERT into gis_geometry SELECT * FROM gis_point; -INSERT into gis_geometry SELECT * FROM gis_line; -INSERT into gis_geometry SELECT * FROM gis_polygon; -INSERT into gis_geometry SELECT * FROM gis_multi_point; -INSERT into gis_geometry SELECT * FROM gis_multi_line; -INSERT into gis_geometry SELECT * FROM gis_multi_polygon; -INSERT into gis_geometry SELECT * FROM gis_geometrycollection; -SELECT fid, AsText(g) FROM gis_point ORDER by fid; -fid AsText(g) -101 POINT(10 10) -102 POINT(20 10) -103 POINT(20 20) -104 POINT(10 20) -SELECT fid, AsText(g) FROM gis_line ORDER by fid; -fid AsText(g) -105 LINESTRING(0 0,0 10,10 0) -106 LINESTRING(10 10,20 10,20 20,10 20,10 10) -107 LINESTRING(10 10,40 10) -SELECT fid, AsText(g) FROM gis_polygon ORDER by fid; -fid AsText(g) -108 POLYGON((10 10,20 10,20 20,10 20,10 10)) -109 POLYGON((0 0,50 0,50 50,0 50,0 0),(10 10,20 10,20 20,10 20,10 10)) -110 POLYGON((0 0,30 0,30 30,0 0)) -SELECT fid, AsText(g) FROM gis_multi_point ORDER by fid; -fid AsText(g) -111 MULTIPOINT(0 0,10 10,10 20,20 20) -112 MULTIPOINT(1 1,11 11,11 21,21 21) -113 MULTIPOINT(3 6,4 10) -SELECT fid, AsText(g) FROM gis_multi_line ORDER by fid; -fid AsText(g) -114 MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48)) -115 MULTILINESTRING((10 48,10 21,10 0)) -116 MULTILINESTRING((1 2,3 5),(2 5,5 8,21 7)) -SELECT fid, AsText(g) FROM gis_multi_polygon ORDER by fid; -fid AsText(g) -117 MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18))) -118 MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18))) -119 MULTIPOLYGON(((0 3,3 3,3 0,0 3))) -SELECT fid, AsText(g) FROM gis_geometrycollection ORDER by fid; -fid AsText(g) -120 GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(0 0,10 10)) -121 GEOMETRYCOLLECTION(POINT(44 6),LINESTRING(3 6,7 9)) -SELECT fid, AsText(g) FROM gis_geometry ORDER by fid; -fid AsText(g) -101 POINT(10 10) -102 POINT(20 10) -103 POINT(20 20) -104 POINT(10 20) -105 LINESTRING(0 0,0 10,10 0) -106 LINESTRING(10 10,20 10,20 20,10 20,10 10) -107 LINESTRING(10 10,40 10) -108 POLYGON((10 10,20 10,20 20,10 20,10 10)) -109 POLYGON((0 0,50 0,50 50,0 50,0 0),(10 10,20 10,20 20,10 20,10 10)) -110 POLYGON((0 0,30 0,30 30,0 0)) -111 MULTIPOINT(0 0,10 10,10 20,20 20) -112 MULTIPOINT(1 1,11 11,11 21,21 21) -113 MULTIPOINT(3 6,4 10) -114 MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48)) -115 MULTILINESTRING((10 48,10 21,10 0)) -116 MULTILINESTRING((1 2,3 5),(2 5,5 8,21 7)) -117 MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18))) -118 MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18))) -119 MULTIPOLYGON(((0 3,3 3,3 0,0 3))) -120 GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(0 0,10 10)) -121 GEOMETRYCOLLECTION(POINT(44 6),LINESTRING(3 6,7 9)) -SELECT fid, Dimension(g) FROM gis_geometry ORDER by fid; -fid Dimension(g) -101 0 -102 0 -103 0 -104 0 -105 1 -106 1 -107 1 -108 2 -109 2 -110 2 -111 0 -112 0 -113 0 -114 1 -115 1 -116 1 -117 2 -118 2 -119 2 -120 1 -121 1 -SELECT fid, GeometryType(g) FROM gis_geometry ORDER by fid; -fid GeometryType(g) -101 POINT -102 POINT -103 POINT -104 POINT -105 LINESTRING -106 LINESTRING -107 LINESTRING -108 POLYGON -109 POLYGON -110 POLYGON -111 MULTIPOINT -112 MULTIPOINT -113 MULTIPOINT -114 MULTILINESTRING -115 MULTILINESTRING -116 MULTILINESTRING -117 MULTIPOLYGON -118 MULTIPOLYGON -119 MULTIPOLYGON -120 GEOMETRYCOLLECTION -121 GEOMETRYCOLLECTION -SELECT fid, IsEmpty(g) FROM gis_geometry ORDER by fid; -fid IsEmpty(g) -101 0 -102 0 -103 0 -104 0 -105 0 -106 0 -107 0 -108 0 -109 0 -110 0 -111 0 -112 0 -113 0 -114 0 -115 0 -116 0 -117 0 -118 0 -119 0 -120 0 -121 0 -SELECT fid, AsText(Envelope(g)) FROM gis_geometry ORDER by fid; -fid AsText(Envelope(g)) -101 POLYGON((10 10,10 10,10 10,10 10,10 10)) -102 POLYGON((20 10,20 10,20 10,20 10,20 10)) -103 POLYGON((20 20,20 20,20 20,20 20,20 20)) -104 POLYGON((10 20,10 20,10 20,10 20,10 20)) -105 POLYGON((0 0,10 0,10 10,0 10,0 0)) -106 POLYGON((10 10,20 10,20 20,10 20,10 10)) -107 POLYGON((10 10,40 10,40 10,10 10,10 10)) -108 POLYGON((10 10,20 10,20 20,10 20,10 10)) -109 POLYGON((0 0,50 0,50 50,0 50,0 0)) -110 POLYGON((0 0,30 0,30 30,0 30,0 0)) -111 POLYGON((0 0,20 0,20 20,0 20,0 0)) -112 POLYGON((1 1,21 1,21 21,1 21,1 1)) -113 POLYGON((3 6,4 6,4 10,3 10,3 6)) -114 POLYGON((10 0,16 0,16 48,10 48,10 0)) -115 POLYGON((10 0,10 0,10 48,10 48,10 0)) -116 POLYGON((1 2,21 2,21 8,1 8,1 2)) -117 POLYGON((28 0,84 0,84 42,28 42,28 0)) -118 POLYGON((28 0,84 0,84 42,28 42,28 0)) -119 POLYGON((0 0,3 0,3 3,0 3,0 0)) -120 POLYGON((0 0,10 0,10 10,0 10,0 0)) -121 POLYGON((3 6,44 6,44 9,3 9,3 6)) -explain extended select Dimension(g), GeometryType(g), IsEmpty(g), AsText(Envelope(g)) from gis_geometry; -id select_type table type possible_keys key key_len ref rows filtered Extra -1 SIMPLE gis_geometry ALL NULL NULL NULL NULL 21 100.00 -Warnings: -Note 1003 select dimension(`test`.`gis_geometry`.`g`) AS `Dimension(g)`,geometrytype(`test`.`gis_geometry`.`g`) AS `GeometryType(g)`,isempty(`test`.`gis_geometry`.`g`) AS `IsEmpty(g)`,astext(envelope(`test`.`gis_geometry`.`g`)) AS `AsText(Envelope(g))` from `test`.`gis_geometry` -SELECT fid, X(g) FROM gis_point ORDER by fid; -fid X(g) -101 10 -102 20 -103 20 -104 10 -SELECT fid, Y(g) FROM gis_point ORDER by fid; -fid Y(g) -101 10 -102 10 -103 20 -104 20 -explain extended select X(g),Y(g) FROM gis_point; -id select_type table type possible_keys key key_len ref rows filtered Extra -1 SIMPLE gis_point ALL NULL NULL NULL NULL 4 100.00 -Warnings: -Note 1003 select x(`test`.`gis_point`.`g`) AS `X(g)`,y(`test`.`gis_point`.`g`) AS `Y(g)` from `test`.`gis_point` -SELECT fid, AsText(StartPoint(g)) FROM gis_line ORDER by fid; -fid AsText(StartPoint(g)) -105 POINT(0 0) -106 POINT(10 10) -107 POINT(10 10) -SELECT fid, AsText(EndPoint(g)) FROM gis_line ORDER by fid; -fid AsText(EndPoint(g)) -105 POINT(10 0) -106 POINT(10 10) -107 POINT(40 10) -SELECT fid, GLength(g) FROM gis_line ORDER by fid; -fid GLength(g) -105 24.142135623731 -106 40 -107 30 -SELECT fid, NumPoints(g) FROM gis_line ORDER by fid; -fid NumPoints(g) -105 3 -106 5 -107 2 -SELECT fid, AsText(PointN(g, 2)) FROM gis_line ORDER by fid; -fid AsText(PointN(g, 2)) -105 POINT(0 10) -106 POINT(20 10) -107 POINT(40 10) -SELECT fid, IsClosed(g) FROM gis_line ORDER by fid; -fid IsClosed(g) -105 0 -106 1 -107 0 -explain extended select AsText(StartPoint(g)),AsText(EndPoint(g)),GLength(g),NumPoints(g),AsText(PointN(g, 2)),IsClosed(g) FROM gis_line; -id select_type table type possible_keys key key_len ref rows filtered Extra -1 SIMPLE gis_line ALL NULL NULL NULL NULL 3 100.00 -Warnings: -Note 1003 select astext(startpoint(`test`.`gis_line`.`g`)) AS `AsText(StartPoint(g))`,astext(endpoint(`test`.`gis_line`.`g`)) AS `AsText(EndPoint(g))`,glength(`test`.`gis_line`.`g`) AS `GLength(g)`,numpoints(`test`.`gis_line`.`g`) AS `NumPoints(g)`,astext(pointn(`test`.`gis_line`.`g`,2)) AS `AsText(PointN(g, 2))`,isclosed(`test`.`gis_line`.`g`) AS `IsClosed(g)` from `test`.`gis_line` -SELECT fid, AsText(Centroid(g)) FROM gis_polygon ORDER by fid; -fid AsText(Centroid(g)) -108 POINT(15 15) -109 POINT(25.4166666666667 25.4166666666667) -110 POINT(20 10) -SELECT fid, Area(g) FROM gis_polygon ORDER by fid; -fid Area(g) -108 100 -109 2400 -110 450 -SELECT fid, AsText(ExteriorRing(g)) FROM gis_polygon ORDER by fid; -fid AsText(ExteriorRing(g)) -108 LINESTRING(10 10,20 10,20 20,10 20,10 10) -109 LINESTRING(0 0,50 0,50 50,0 50,0 0) -110 LINESTRING(0 0,30 0,30 30,0 0) -SELECT fid, NumInteriorRings(g) FROM gis_polygon ORDER by fid; -fid NumInteriorRings(g) -108 0 -109 1 -110 0 -SELECT fid, AsText(InteriorRingN(g, 1)) FROM gis_polygon ORDER by fid; -fid AsText(InteriorRingN(g, 1)) -108 NULL -109 LINESTRING(10 10,20 10,20 20,10 20,10 10) -110 NULL -explain extended select AsText(Centroid(g)),Area(g),AsText(ExteriorRing(g)),NumInteriorRings(g),AsText(InteriorRingN(g, 1)) FROM gis_polygon; -id select_type table type possible_keys key key_len ref rows filtered Extra -1 SIMPLE gis_polygon ALL NULL NULL NULL NULL 3 100.00 -Warnings: -Note 1003 select astext(centroid(`test`.`gis_polygon`.`g`)) AS `AsText(Centroid(g))`,area(`test`.`gis_polygon`.`g`) AS `Area(g)`,astext(exteriorring(`test`.`gis_polygon`.`g`)) AS `AsText(ExteriorRing(g))`,numinteriorrings(`test`.`gis_polygon`.`g`) AS `NumInteriorRings(g)`,astext(interiorringn(`test`.`gis_polygon`.`g`,1)) AS `AsText(InteriorRingN(g, 1))` from `test`.`gis_polygon` -SELECT fid, IsClosed(g) FROM gis_multi_line ORDER by fid; -fid IsClosed(g) -114 0 -115 0 -116 0 -SELECT fid, AsText(Centroid(g)) FROM gis_multi_polygon ORDER by fid; -fid AsText(Centroid(g)) -117 POINT(55.5885277530424 17.426536064114) -118 POINT(55.5885277530424 17.426536064114) -119 POINT(2 2) -SELECT fid, Area(g) FROM gis_multi_polygon ORDER by fid; -fid Area(g) -117 1684.5 -118 1684.5 -119 4.5 -SELECT fid, NumGeometries(g) from gis_multi_point ORDER by fid; -fid NumGeometries(g) -111 4 -112 4 -113 2 -SELECT fid, NumGeometries(g) from gis_multi_line ORDER by fid; -fid NumGeometries(g) -114 2 -115 1 -116 2 -SELECT fid, NumGeometries(g) from gis_multi_polygon ORDER by fid; -fid NumGeometries(g) -117 2 -118 2 -119 1 -SELECT fid, NumGeometries(g) from gis_geometrycollection ORDER by fid; -fid NumGeometries(g) -120 2 -121 2 -explain extended SELECT fid, NumGeometries(g) from gis_multi_point; -id select_type table type possible_keys key key_len ref rows filtered Extra -1 SIMPLE gis_multi_point ALL NULL NULL NULL NULL 3 100.00 -Warnings: -Note 1003 select `test`.`gis_multi_point`.`fid` AS `fid`,numgeometries(`test`.`gis_multi_point`.`g`) AS `NumGeometries(g)` from `test`.`gis_multi_point` -SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_point ORDER by fid; -fid AsText(GeometryN(g, 2)) -111 POINT(10 10) -112 POINT(11 11) -113 POINT(4 10) -SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_line ORDER by fid; -fid AsText(GeometryN(g, 2)) -114 LINESTRING(16 0,16 23,16 48) -115 NULL -116 LINESTRING(2 5,5 8,21 7) -SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_polygon ORDER by fid; -fid AsText(GeometryN(g, 2)) -117 POLYGON((59 18,67 18,67 13,59 13,59 18)) -118 POLYGON((59 18,67 18,67 13,59 13,59 18)) -119 NULL -SELECT fid, AsText(GeometryN(g, 2)) from gis_geometrycollection ORDER by fid; -fid AsText(GeometryN(g, 2)) -120 LINESTRING(0 0,10 10) -121 LINESTRING(3 6,7 9) -SELECT fid, AsText(GeometryN(g, 1)) from gis_geometrycollection ORDER by fid; -fid AsText(GeometryN(g, 1)) -120 POINT(0 0) -121 POINT(44 6) -explain extended SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_point; -id select_type table type possible_keys key key_len ref rows filtered Extra -1 SIMPLE gis_multi_point ALL NULL NULL NULL NULL 3 100.00 -Warnings: -Note 1003 select `test`.`gis_multi_point`.`fid` AS `fid`,astext(geometryn(`test`.`gis_multi_point`.`g`,2)) AS `AsText(GeometryN(g, 2))` from `test`.`gis_multi_point` -SELECT g1.fid as first, g2.fid as second, -Within(g1.g, g2.g) as w, Contains(g1.g, g2.g) as c, Overlaps(g1.g, g2.g) as o, -Equals(g1.g, g2.g) as e, Disjoint(g1.g, g2.g) as d, Touches(g1.g, g2.g) as t, -Intersects(g1.g, g2.g) as i, Crosses(g1.g, g2.g) as r -FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second; -first second w c o e d t i r -120 120 1 1 0 1 0 0 1 0 -120 121 0 0 1 0 0 0 1 0 -121 120 0 0 1 0 0 0 1 0 -121 121 1 1 0 1 0 0 1 0 -explain extended SELECT g1.fid as first, g2.fid as second, -Within(g1.g, g2.g) as w, Contains(g1.g, g2.g) as c, Overlaps(g1.g, g2.g) as o, -Equals(g1.g, g2.g) as e, Disjoint(g1.g, g2.g) as d, Touches(g1.g, g2.g) as t, -Intersects(g1.g, g2.g) as i, Crosses(g1.g, g2.g) as r -FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second; -id select_type table type possible_keys key key_len ref rows filtered Extra -1 SIMPLE g1 ALL NULL NULL NULL NULL 2 100.00 Using temporary; Using filesort -1 SIMPLE g2 ALL NULL NULL NULL NULL 2 100.00 Using join buffer -Warnings: -Note 1003 select `test`.`g1`.`fid` AS `first`,`test`.`g2`.`fid` AS `second`,within(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `w`,contains(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `c`,overlaps(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `o`,equals(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `e`,disjoint(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `d`,touches(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `t`,intersects(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `i`,crosses(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `r` from `test`.`gis_geometrycollection` `g1` join `test`.`gis_geometrycollection` `g2` order by `test`.`g1`.`fid`,`test`.`g2`.`fid` -DROP TABLE gis_point, gis_line, gis_polygon, gis_multi_point, gis_multi_line, gis_multi_polygon, gis_geometrycollection, gis_geometry; -CREATE TABLE t1 ( -a INTEGER PRIMARY KEY AUTO_INCREMENT, -gp point, -ln linestring, -pg polygon, -mp multipoint, -mln multilinestring, -mpg multipolygon, -gc geometrycollection, -gm geometry -); -SHOW FIELDS FROM t1; -Field Type Null Key Default Extra -a int(11) NO PRI NULL auto_increment -gp point YES NULL -ln linestring YES NULL -pg polygon YES NULL -mp multipoint YES NULL -mln multilinestring YES NULL -mpg multipolygon YES NULL -gc geometrycollection YES NULL -gm geometry YES NULL -ALTER TABLE t1 ADD fid INT; -SHOW FIELDS FROM t1; -Field Type Null Key Default Extra -a int(11) NO PRI NULL auto_increment -gp point YES NULL -ln linestring YES NULL -pg polygon YES NULL -mp multipoint YES NULL -mln multilinestring YES NULL -mpg multipolygon YES NULL -gc geometrycollection YES NULL -gm geometry YES NULL -fid int(11) YES NULL -DROP TABLE t1; -create table t1 (pk integer primary key auto_increment, a geometry not null); -insert into t1 (a) values (GeomFromText('Point(1 2)')); -insert into t1 (a) values ('Garbage'); -ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field -insert IGNORE into t1 (a) values ('Garbage'); -ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field -drop table t1; -create table t1 (pk integer primary key auto_increment, fl geometry not null); -insert into t1 (fl) values (1); -ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field -insert into t1 (fl) values (1.11); -ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field -insert into t1 (fl) values ("qwerty"); -ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field -insert into t1 (fl) values (pointfromtext('point(1,1)')); -ERROR 23000: Column 'fl' cannot be null -drop table t1; -End of 4.1 tests -CREATE TABLE t1 (name VARCHAR(100), square GEOMETRY); -INSERT INTO t1 VALUES("center", GeomFromText('POLYGON (( 0 0, 0 2, 2 2, 2 0, 0 0))')); -INSERT INTO t1 VALUES("small", GeomFromText('POLYGON (( 0 0, 0 1, 1 1, 1 0, 0 0))')); -INSERT INTO t1 VALUES("big", GeomFromText('POLYGON (( 0 0, 0 3, 3 3, 3 0, 0 0))')); -INSERT INTO t1 VALUES("up", GeomFromText('POLYGON (( 0 1, 0 3, 2 3, 2 1, 0 1))')); -INSERT INTO t1 VALUES("up2", GeomFromText('POLYGON (( 0 2, 0 4, 2 4, 2 2, 0 2))')); -INSERT INTO t1 VALUES("up3", GeomFromText('POLYGON (( 0 3, 0 5, 2 5, 2 3, 0 3))')); -INSERT INTO t1 VALUES("down", GeomFromText('POLYGON (( 0 -1, 0 1, 2 1, 2 -1, 0 -1))')); -INSERT INTO t1 VALUES("down2", GeomFromText('POLYGON (( 0 -2, 0 0, 2 0, 2 -2, 0 -2))')); -INSERT INTO t1 VALUES("down3", GeomFromText('POLYGON (( 0 -3, 0 -1, 2 -1, 2 -3, 0 -3))')); -INSERT INTO t1 VALUES("right", GeomFromText('POLYGON (( 1 0, 1 2, 3 2, 3 0, 1 0))')); -INSERT INTO t1 VALUES("right2", GeomFromText('POLYGON (( 2 0, 2 2, 4 2, 4 0, 2 0))')); -INSERT INTO t1 VALUES("right3", GeomFromText('POLYGON (( 3 0, 3 2, 5 2, 5 0, 3 0))')); -INSERT INTO t1 VALUES("left", GeomFromText('POLYGON (( -1 0, -1 2, 1 2, 1 0, -1 0))')); -INSERT INTO t1 VALUES("left2", GeomFromText('POLYGON (( -2 0, -2 2, 0 2, 0 0, -2 0))')); -INSERT INTO t1 VALUES("left3", GeomFromText('POLYGON (( -3 0, -3 2, -1 2, -1 0, -3 0))')); -SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrcontains FROM t1 a1 JOIN t1 a2 ON MBRContains( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name; -mbrcontains -center,small -SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrdisjoint FROM t1 a1 JOIN t1 a2 ON MBRDisjoint( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name; -mbrdisjoint -down3,left3,right3,up3 -SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrequal FROM t1 a1 JOIN t1 a2 ON MBREqual( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name; -mbrequal -center -SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrintersect FROM t1 a1 JOIN t1 a2 ON MBRIntersects( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name; -mbrintersect -big,center,down,down2,left,left2,right,right2,small,up,up2 -SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbroverlaps FROM t1 a1 JOIN t1 a2 ON MBROverlaps( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name; -mbroverlaps -down,left,right,up -SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrtouches FROM t1 a1 JOIN t1 a2 ON MBRTouches( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name; -mbrtouches -down2,left2,right2,up2 -SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrwithin FROM t1 a1 JOIN t1 a2 ON MBRWithin( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name; -mbrwithin -big,center -SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS contains FROM t1 a1 JOIN t1 a2 ON Contains( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name; -contains -center,small -SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS disjoint FROM t1 a1 JOIN t1 a2 ON Disjoint( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name; -disjoint -down3,left3,right3,up3 -SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS equals FROM t1 a1 JOIN t1 a2 ON Equals( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name; -equals -center -SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS intersect FROM t1 a1 JOIN t1 a2 ON Intersects( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name; -intersect -big,center,down,down2,left,left2,right,right2,small,up,up2 -SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS overlaps FROM t1 a1 JOIN t1 a2 ON Overlaps( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name; -overlaps -down,left,right,up -SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS touches FROM t1 a1 JOIN t1 a2 ON Touches( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name; -touches -down2,left2,right2,up2 -SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS within FROM t1 a1 JOIN t1 a2 ON Within( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name; -within -big,center -SET @vert1 = GeomFromText('POLYGON ((0 -2, 0 2, 0 -2))'); -SET @horiz1 = GeomFromText('POLYGON ((-2 0, 2 0, -2 0))'); -SET @horiz2 = GeomFromText('POLYGON ((-1 0, 3 0, -1 0))'); -SET @horiz3 = GeomFromText('POLYGON ((2 0, 3 0, 2 0))'); -SET @point1 = GeomFromText('POLYGON ((0 0))'); -SET @point2 = GeomFromText('POLYGON ((-2 0))'); -SELECT GROUP_CONCAT(a1.name ORDER BY a1.name) AS overlaps FROM t1 a1 WHERE Overlaps(a1.square, @vert1) GROUP BY a1.name; -overlaps -SELECT GROUP_CONCAT(a1.name ORDER BY a1.name) AS overlaps FROM t1 a1 WHERE Overlaps(a1.square, @horiz1) GROUP BY a1.name; -overlaps -SELECT Overlaps(@horiz1, @vert1) FROM DUAL; -Overlaps(@horiz1, @vert1) -0 -SELECT Overlaps(@horiz1, @horiz2) FROM DUAL; -Overlaps(@horiz1, @horiz2) -1 -SELECT Overlaps(@horiz1, @horiz3) FROM DUAL; -Overlaps(@horiz1, @horiz3) -0 -SELECT Overlaps(@horiz1, @point1) FROM DUAL; -Overlaps(@horiz1, @point1) -0 -SELECT Overlaps(@horiz1, @point2) FROM DUAL; -Overlaps(@horiz1, @point2) -0 -DROP TABLE t1; -End of 5.0 tests -CREATE TABLE t1 (p POINT); -CREATE TABLE t2 (p POINT, INDEX(p)); -INSERT INTO t1 VALUES (POINTFROMTEXT('POINT(1 2)')); -INSERT INTO t2 VALUES (POINTFROMTEXT('POINT(1 2)')); -SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)'); -COUNT(*) -1 -EXPLAIN -SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)'); -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 ref p p 28 const 1 Using where -SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)'); -COUNT(*) -1 -INSERT INTO t1 VALUES (POINTFROMTEXT('POINT(1 2)')); -INSERT INTO t2 VALUES (POINTFROMTEXT('POINT(1 2)')); -EXPLAIN -SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)'); -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where -SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)'); -COUNT(*) -2 -EXPLAIN -SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)'); -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 ref p p 28 const 1 Using where -SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)'); -COUNT(*) -2 -EXPLAIN -SELECT COUNT(*) FROM t2 IGNORE INDEX(p) WHERE p=POINTFROMTEXT('POINT(1 2)'); -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where -SELECT COUNT(*) FROM t2 IGNORE INDEX(p) WHERE p=POINTFROMTEXT('POINT(1 2)'); -COUNT(*) -2 -DROP TABLE t1, t2; -End of 5.0 tests -create table t1 (g geometry not null, spatial gk(g)) engine=innodb; -ERROR HY000: The used table type doesn't support SPATIAL indexes diff --git a/mysql-test/r/innodb_lock_wait_timeout_1.result b/mysql-test/r/innodb_lock_wait_timeout_1.result deleted file mode 100644 index bd8760b8f79..00000000000 --- a/mysql-test/r/innodb_lock_wait_timeout_1.result +++ /dev/null @@ -1,375 +0,0 @@ -# -# Bug #40113: Embedded SELECT inside UPDATE or DELETE can timeout -# without error -# -CREATE TABLE t1 (a int, b int, PRIMARY KEY (a,b)) ENGINE=InnoDB; -INSERT INTO t1 (a,b) VALUES (1070109,99); -CREATE TABLE t2 (b int, a int, PRIMARY KEY (b)) ENGINE=InnoDB; -INSERT INTO t2 (b,a) VALUES (7,1070109); -SELECT * FROM t1; -a b -1070109 99 -BEGIN; -SELECT b FROM t2 WHERE b=7 FOR UPDATE; -b -7 -BEGIN; -SELECT b FROM t2 WHERE b=7 FOR UPDATE; -ERROR HY000: Lock wait timeout exceeded; try restarting transaction -INSERT INTO t1 (a) VALUES ((SELECT a FROM t2 WHERE b=7)); -ERROR HY000: Lock wait timeout exceeded; try restarting transaction -UPDATE t1 SET a='7000000' WHERE a=(SELECT a FROM t2 WHERE b=7); -ERROR HY000: Lock wait timeout exceeded; try restarting transaction -DELETE FROM t1 WHERE a=(SELECT a FROM t2 WHERE b=7); -ERROR HY000: Lock wait timeout exceeded; try restarting transaction -SELECT * FROM t1; -a b -1070109 99 -DROP TABLE t2, t1; -# End of 5.0 tests -# -# Bug#46539 Various crashes on INSERT IGNORE SELECT + SELECT -# FOR UPDATE -# -drop table if exists t1; -create table t1 (a int primary key auto_increment, -b int, index(b)) engine=innodb; -insert into t1 (b) values (1), (2), (3), (4), (5), (6), (7), (8), (9), (10); -set autocommit=0; -begin; -select * from t1 where b=5 for update; -a b -5 5 -insert ignore into t1 (b) select a as b from t1; -ERROR HY000: Lock wait timeout exceeded; try restarting transaction -# Cleanup -# -commit; -set autocommit=default; -drop table t1; -# -# Bug #37183 insert ignore into .. select ... hangs -# after deadlock was encountered -# -create table t1(id int primary key,v int)engine=innodb; -insert into t1 values (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7); -create table t2 like t1; -begin; -update t1 set v=id*2 where id=1; -begin; -update t1 set v=id*2 where id=2; -update t1 set v=id*2 where id=2; -ERROR HY000: Lock wait timeout exceeded; try restarting transaction -insert ignore into t2 select * from t1 where id=1; -ERROR HY000: Lock wait timeout exceeded; try restarting transaction -rollback; -rollback; -drop table t1, t2; -# -# Bug#41756 Strange error messages about locks from InnoDB -# -drop table if exists t1; -# In the default transaction isolation mode, and/or with -# innodb_locks_unsafe_for_binlog=OFF, handler::unlock_row() -# in InnoDB does nothing. -# Thus in order to reproduce the condition that led to the -# warning, one needs to relax isolation by either -# setting a weaker tx_isolation value, or by turning on -# the unsafe replication switch. -# For testing purposes, choose to tweak the isolation level, -# since it's settable at runtime, unlike -# innodb_locks_unsafe_for_binlog, which is -# only a command-line switch. -# -set @@session.tx_isolation="read-committed"; -# Prepare data. We need a table with a unique index, -# for join_read_key to be used. The other column -# allows to control what passes WHERE clause filter. -create table t1 (a int primary key, b int) engine=innodb; -# Let's make sure t1 has sufficient amount of rows -# to exclude JT_ALL access method when reading it, -# i.e. make sure that JT_EQ_REF(a) is always preferred. -insert into t1 values (1,1), (2,null), (3,1), (4,1), -(5,1), (6,1), (7,1), (8,1), (9,1), (10,1), -(11,1), (12,1), (13,1), (14,1), (15,1), -(16,1), (17,1), (18,1), (19,1), (20,1); -# -# Demonstrate that for the SELECT statement -# used later in the test JT_EQ_REF access method is used. -# -explain -select 1 from t1 natural join (select 2 as a, 1 as b union all -select 2 as a, 2 as b) as t2 for update; -id 1 -select_type PRIMARY -table <derived2> -type ALL -possible_keys NULL -key NULL -key_len NULL -ref NULL -rows 2 -Extra -id 1 -select_type PRIMARY -table t1 -type eq_ref -possible_keys PRIMARY -key PRIMARY -key_len 4 -ref t2.a -rows 1 -Extra Using where -id 2 -select_type DERIVED -table NULL -type NULL -possible_keys NULL -key NULL -key_len NULL -ref NULL -rows NULL -Extra No tables used -id 3 -select_type UNION -table NULL -type NULL -possible_keys NULL -key NULL -key_len NULL -ref NULL -rows NULL -Extra No tables used -id NULL -select_type UNION RESULT -table <union2,3> -type ALL -possible_keys NULL -key NULL -key_len NULL -ref NULL -rows NULL -Extra -# -# Demonstrate that the reported SELECT statement -# no longer produces warnings. -# -select 1 from t1 natural join (select 2 as a, 1 as b union all -select 2 as a, 2 as b) as t2 for update; -1 -commit; -# -# Demonstrate that due to lack of inter-sweep "reset" function, -# we keep some non-matching records locked, even though we know -# we could unlock them. -# To do that, show that if there is only one distinct value -# for a in t2 (a=2), we will keep record (2,null) in t1 locked. -# But if we add another value for "a" to t2, say 6, -# join_read_key cache will be pruned at least once, -# and thus record (2, null) in t1 will get unlocked. -# -begin; -select 1 from t1 natural join (select 2 as a, 1 as b union all -select 2 as a, 2 as b) as t2 for update; -1 -# -# Switching to connection con1 -# We should be able to delete all records from t1 except (2, null), -# since they were not locked. -begin; -# Delete in series of 3 records so that full scan -# is not used and we're not blocked on record (2,null) -delete from t1 where a in (1,3,4); -delete from t1 where a in (5,6,7); -delete from t1 where a in (8,9,10); -delete from t1 where a in (11,12,13); -delete from t1 where a in (14,15,16); -delete from t1 where a in (17,18); -delete from t1 where a in (19,20); -# -# Record (2, null) is locked. This is actually unnecessary, -# because the previous select returned no rows. -# Just demonstrate the effect. -# -delete from t1; -ERROR HY000: Lock wait timeout exceeded; try restarting transaction -rollback; -# -# Switching to connection default -# -# Show that the original contents of t1 is intact: -select * from t1; -a b -1 1 -2 NULL -3 1 -4 1 -5 1 -6 1 -7 1 -8 1 -9 1 -10 1 -11 1 -12 1 -13 1 -14 1 -15 1 -16 1 -17 1 -18 1 -19 1 -20 1 -commit; -# -# Have a one more record in t2 to show that -# if join_read_key cache is purned, the current -# row under the cursor is unlocked (provided, this row didn't -# match the partial WHERE clause, of course). -# Sic: the result of this test dependent on the order of retrieval -# of records --echo # from the derived table, if ! -# We use DELETE to disable the JOIN CACHE. This DELETE modifies no -# records. It also should leave no InnoDB row locks. -# -begin; -delete t1.* from t1 natural join (select 2 as a, 2 as b union all -select 0 as a, 0 as b) as t2; -# Demonstrate that nothing was deleted form t1 -select * from t1; -a b -1 1 -2 NULL -3 1 -4 1 -5 1 -6 1 -7 1 -8 1 -9 1 -10 1 -11 1 -12 1 -13 1 -14 1 -15 1 -16 1 -17 1 -18 1 -19 1 -20 1 -# -# Switching to connection con1 -begin; -# Since there is another distinct record in the derived table -# the previous matching record in t1 -- (2,null) -- was unlocked. -delete from t1; -# We will need the contents of the table again. -rollback; -select * from t1; -a b -1 1 -2 NULL -3 1 -4 1 -5 1 -6 1 -7 1 -8 1 -9 1 -10 1 -11 1 -12 1 -13 1 -14 1 -15 1 -16 1 -17 1 -18 1 -19 1 -20 1 -commit; -# -# Switching to connection default -rollback; -begin; -# -# Before this patch, we could wrongly unlock a record -# that was cached and later used in a join. Demonstrate that -# this is no longer the case. -# Sic: this test is also order-dependent (i.e. the -# the bug would show up only if the first record in the union -# is retreived and processed first. -# -# Verify that JT_EQ_REF is used. -explain -select 1 from t1 natural join (select 3 as a, 2 as b union all -select 3 as a, 1 as b) as t2 for update; -id 1 -select_type PRIMARY -table <derived2> -type ALL -possible_keys NULL -key NULL -key_len NULL -ref NULL -rows 2 -Extra -id 1 -select_type PRIMARY -table t1 -type eq_ref -possible_keys PRIMARY -key PRIMARY -key_len 4 -ref t2.a -rows 1 -Extra Using where -id 2 -select_type DERIVED -table NULL -type NULL -possible_keys NULL -key NULL -key_len NULL -ref NULL -rows NULL -Extra No tables used -id 3 -select_type UNION -table NULL -type NULL -possible_keys NULL -key NULL -key_len NULL -ref NULL -rows NULL -Extra No tables used -id NULL -select_type UNION RESULT -table <union2,3> -type ALL -possible_keys NULL -key NULL -key_len NULL -ref NULL -rows NULL -Extra -# Lock the record. -select 1 from t1 natural join (select 3 as a, 2 as b union all -select 3 as a, 1 as b) as t2 for update; -1 -1 -# Switching to connection con1 -# -# We should not be able to delete record (3,1) from t1, -# (previously it was possible). -# -delete from t1 where a=3; -ERROR HY000: Lock wait timeout exceeded; try restarting transaction -# Switching to connection default -commit; -set @@session.tx_isolation=default; -drop table t1; -# -# End of 5.1 tests -# diff --git a/mysql-test/r/innodb_mysql.result b/mysql-test/r/innodb_mysql.result deleted file mode 100644 index 6590bac9c47..00000000000 --- a/mysql-test/r/innodb_mysql.result +++ /dev/null @@ -1,2420 +0,0 @@ -set global innodb_support_xa=default; -set session innodb_support_xa=default; -SET SESSION STORAGE_ENGINE = InnoDB; -drop table if exists t1,t2,t3,t1m,t1i,t2m,t2i,t4; -drop procedure if exists p1; -create table t1 ( -c_id int(11) not null default '0', -org_id int(11) default null, -unique key contacts$c_id (c_id), -key contacts$org_id (org_id) -); -insert into t1 values -(2,null),(120,null),(141,null),(218,7), (128,1), -(151,2),(234,2),(236,2),(243,2),(255,2),(259,2),(232,3),(235,3),(238,3), -(246,3),(253,3),(269,3),(285,3),(291,3),(293,3),(131,4),(230,4),(231,4); -create table t2 ( -slai_id int(11) not null default '0', -owner_tbl int(11) default null, -owner_id int(11) default null, -sla_id int(11) default null, -inc_web int(11) default null, -inc_email int(11) default null, -inc_chat int(11) default null, -inc_csr int(11) default null, -inc_total int(11) default null, -time_billed int(11) default null, -activedate timestamp null default null, -expiredate timestamp null default null, -state int(11) default null, -sla_set int(11) default null, -unique key t2$slai_id (slai_id), -key t2$owner_id (owner_id), -key t2$sla_id (sla_id) -); -insert into t2(slai_id, owner_tbl, owner_id, sla_id) values -(1,3,1,1), (3,3,10,2), (4,3,3,6), (5,3,2,5), (6,3,8,3), (7,3,9,7), -(8,3,6,8), (9,3,4,9), (10,3,5,10), (11,3,11,11), (12,3,7,12); -flush tables; -select si.slai_id -from t1 c join t2 si on -((si.owner_tbl = 3 and si.owner_id = c.org_id) or -( si.owner_tbl = 2 and si.owner_id = c.c_id)) -where -c.c_id = 218 and expiredate is null; -slai_id -12 -select * from t1 where org_id is null; -c_id org_id -2 NULL -120 NULL -141 NULL -select si.slai_id -from t1 c join t2 si on -((si.owner_tbl = 3 and si.owner_id = c.org_id) or -( si.owner_tbl = 2 and si.owner_id = c.c_id)) -where -c.c_id = 218 and expiredate is null; -slai_id -12 -drop table t1, t2; -CREATE TABLE t1 (a int, b int, KEY b (b)); -CREATE TABLE t2 (a int, b int, PRIMARY KEY (a,b)); -CREATE TABLE t3 (a int, b int, c int, PRIMARY KEY (a), -UNIQUE KEY b (b,c), KEY a (a,b,c)); -INSERT INTO t1 VALUES (1, 1); -INSERT INTO t1 SELECT a + 1, b + 1 FROM t1; -INSERT INTO t1 SELECT a + 2, b + 2 FROM t1; -INSERT INTO t2 VALUES (1,1),(1,2),(1,3),(1,4),(1,5),(1,6),(1,7),(1,8); -INSERT INTO t2 SELECT a + 1, b FROM t2; -DELETE FROM t2 WHERE a = 1 AND b < 2; -INSERT INTO t3 VALUES (1,1,1),(2,1,2); -INSERT INTO t3 SELECT a + 2, a + 2, 3 FROM t3; -INSERT INTO t3 SELECT a + 4, a + 4, 3 FROM t3; -SELECT STRAIGHT_JOIN SQL_NO_CACHE t1.b, t1.a FROM t1, t3, t2 WHERE -t3.a = t2.a AND t2.b = t1.a AND t3.b = 1 AND t3.c IN (1, 2) -ORDER BY t1.b LIMIT 2; -b a -1 1 -2 2 -SELECT STRAIGHT_JOIN SQL_NO_CACHE t1.b, t1.a FROM t1, t3, t2 WHERE -t3.a = t2.a AND t2.b = t1.a AND t3.b = 1 AND t3.c IN (1, 2) -ORDER BY t1.b LIMIT 5; -b a -1 1 -2 2 -2 2 -3 3 -3 3 -DROP TABLE t1, t2, t3; -CREATE TABLE `t1` (`id1` INT) ; -INSERT INTO `t1` (`id1`) VALUES (1),(5),(2); -CREATE TABLE `t2` ( -`id1` INT, -`id2` INT NOT NULL, -`id3` INT, -`id4` INT NOT NULL, -UNIQUE (`id2`,`id4`), -KEY (`id1`) -); -INSERT INTO `t2`(`id1`,`id2`,`id3`,`id4`) VALUES -(1,1,1,0), -(1,1,2,1), -(5,1,2,2), -(6,1,2,3), -(1,2,2,2), -(1,2,1,1); -SELECT `id1` FROM `t1` WHERE `id1` NOT IN (SELECT `id1` FROM `t2` WHERE `id2` = 1 AND `id3` = 2); -id1 -2 -DROP TABLE t1, t2; -create table t1 (c1 int) engine=innodb; -handler t1 open; -handler t1 read first; -c1 -Before and after comparison -0 -drop table t1; -CREATE TABLE t1(c1 TEXT, UNIQUE (c1(1)), cnt INT DEFAULT 1) -ENGINE=INNODB CHARACTER SET UTF8; -INSERT INTO t1 (c1) VALUES ('1a'); -SELECT * FROM t1; -c1 cnt -1a 1 -INSERT INTO t1 (c1) VALUES ('1b') ON DUPLICATE KEY UPDATE cnt=cnt+1; -SELECT * FROM t1; -c1 cnt -1a 2 -DROP TABLE t1; -CREATE TABLE t1(c1 VARCHAR(2), UNIQUE (c1(1)), cnt INT DEFAULT 1) -ENGINE=INNODB CHARACTER SET UTF8; -INSERT INTO t1 (c1) VALUES ('1a'); -SELECT * FROM t1; -c1 cnt -1a 1 -INSERT INTO t1 (c1) VALUES ('1b') ON DUPLICATE KEY UPDATE cnt=cnt+1; -SELECT * FROM t1; -c1 cnt -1a 2 -DROP TABLE t1; -CREATE TABLE t1(c1 CHAR(2), UNIQUE (c1(1)), cnt INT DEFAULT 1) -ENGINE=INNODB CHARACTER SET UTF8; -INSERT INTO t1 (c1) VALUES ('1a'); -SELECT * FROM t1; -c1 cnt -1a 1 -INSERT INTO t1 (c1) VALUES ('1b') ON DUPLICATE KEY UPDATE cnt=cnt+1; -SELECT * FROM t1; -c1 cnt -1a 2 -DROP TABLE t1; -CREATE TABLE t1 ( -a1 decimal(10,0) DEFAULT NULL, -a2 blob, -a3 time DEFAULT NULL, -a4 blob, -a5 char(175) DEFAULT NULL, -a6 timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', -a7 tinyblob, -INDEX idx (a6,a7(239),a5) -) ENGINE=InnoDB; -EXPLAIN SELECT a4 FROM t1 WHERE -a6=NULL AND -a4='UNcT5pIde4I6c2SheTo4gt92OV1jgJCVkXmzyf325R1DwLURkbYHwhydANIZMbKTgdcR5xS'; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables -EXPLAIN SELECT t1.a4 FROM t1, t1 t WHERE -t.a6=t.a6 AND t1.a6=NULL AND -t1.a4='UNcT5pIde4I6c2SheTo4gt92OV1jgJCVkXmzyf325R1DwLURkbYHwhydANIZMbKTgdcR5xS'; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables -DROP TABLE t1; -create table t1m (a int) engine = MEMORY; -create table t1i (a int); -create table t2m (a int) engine = MEMORY; -create table t2i (a int); -insert into t2m values (5); -insert into t2i values (5); -select min(a) from t1i; -min(a) -NULL -select min(7) from t1i; -min(7) -NULL -select min(7) from DUAL; -min(7) -7 -explain select min(7) from t2i join t1i; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2i ALL NULL NULL NULL NULL 1 -1 SIMPLE t1i ALL NULL NULL NULL NULL 1 Using join buffer -select min(7) from t2i join t1i; -min(7) -NULL -select max(a) from t1i; -max(a) -NULL -select max(7) from t1i; -max(7) -NULL -select max(7) from DUAL; -max(7) -7 -explain select max(7) from t2i join t1i; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2i ALL NULL NULL NULL NULL 1 -1 SIMPLE t1i ALL NULL NULL NULL NULL 1 Using join buffer -select max(7) from t2i join t1i; -max(7) -NULL -select 1, min(a) from t1i where a=99; -1 min(a) -1 NULL -select 1, min(a) from t1i where 1=99; -1 min(a) -1 NULL -select 1, min(1) from t1i where a=99; -1 min(1) -1 NULL -select 1, min(1) from t1i where 1=99; -1 min(1) -1 NULL -select 1, max(a) from t1i where a=99; -1 max(a) -1 NULL -select 1, max(a) from t1i where 1=99; -1 max(a) -1 NULL -select 1, max(1) from t1i where a=99; -1 max(1) -1 NULL -select 1, max(1) from t1i where 1=99; -1 max(1) -1 NULL -explain select count(*), min(7), max(7) from t1m, t1i; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1m system NULL NULL NULL NULL 0 const row not found -1 SIMPLE t1i ALL NULL NULL NULL NULL 1 -select count(*), min(7), max(7) from t1m, t1i; -count(*) min(7) max(7) -0 NULL NULL -explain select count(*), min(7), max(7) from t1m, t2i; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1m system NULL NULL NULL NULL 0 const row not found -1 SIMPLE t2i ALL NULL NULL NULL NULL 1 -select count(*), min(7), max(7) from t1m, t2i; -count(*) min(7) max(7) -0 NULL NULL -explain select count(*), min(7), max(7) from t2m, t1i; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2m system NULL NULL NULL NULL 1 -1 SIMPLE t1i ALL NULL NULL NULL NULL 1 -select count(*), min(7), max(7) from t2m, t1i; -count(*) min(7) max(7) -0 NULL NULL -drop table t1m, t1i, t2m, t2i; -create table t1 ( -a1 char(64), a2 char(64), b char(16), c char(16) not null, d char(16), dummy char(64) default ' ' -) ENGINE = MEMORY; -insert into t1 (a1, a2, b, c, d) values -('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'), -('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'), -('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'), -('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'), -('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'), -('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'), -('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'), -('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'), -('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'), -('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'), -('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'), -('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4'), -('d','a','a','a411','xy1'),('d','a','a','b411','xy2'),('d','a','a','c411','xy3'),('d','a','a','d411','xy4'), -('d','a','b','e412','xy1'),('d','a','b','f412','xy2'),('d','a','b','g412','xy3'),('d','a','b','h412','xy4'), -('d','b','a','i421','xy1'),('d','b','a','j421','xy2'),('d','b','a','k421','xy3'),('d','b','a','l421','xy4'), -('d','b','b','m422','xy1'),('d','b','b','n422','xy2'),('d','b','b','o422','xy3'),('d','b','b','p422','xy4'), -('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'), -('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'), -('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'), -('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'), -('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'), -('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'), -('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'), -('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'), -('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'), -('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'), -('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'), -('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4'), -('d','a','a','a411','xy1'),('d','a','a','b411','xy2'),('d','a','a','c411','xy3'),('d','a','a','d411','xy4'), -('d','a','b','e412','xy1'),('d','a','b','f412','xy2'),('d','a','b','g412','xy3'),('d','a','b','h412','xy4'), -('d','b','a','i421','xy1'),('d','b','a','j421','xy2'),('d','b','a','k421','xy3'),('d','b','a','l421','xy4'), -('d','b','b','m422','xy1'),('d','b','b','n422','xy2'),('d','b','b','o422','xy3'),('d','b','b','p422','xy4'); -create table t4 ( -pk_col int auto_increment primary key, a1 char(64), a2 char(64), b char(16), c char(16) not null, d char(16), dummy char(64) default ' ' -); -insert into t4 (a1, a2, b, c, d, dummy) select * from t1; -create index idx12672_0 on t4 (a1); -create index idx12672_1 on t4 (a1,a2,b,c); -create index idx12672_2 on t4 (a1,a2,b); -analyze table t4; -Table Op Msg_type Msg_text -test.t4 analyze status OK -select distinct a1 from t4 where pk_col not in (1,2,3,4); -a1 -a -b -c -d -drop table t1,t4; -DROP TABLE IF EXISTS t2, t1; -CREATE TABLE t1 (i INT NOT NULL PRIMARY KEY) ENGINE= InnoDB; -CREATE TABLE t2 ( -i INT NOT NULL, -FOREIGN KEY (i) REFERENCES t1 (i) ON DELETE NO ACTION -) ENGINE= InnoDB; -INSERT INTO t1 VALUES (1); -INSERT INTO t2 VALUES (1); -DELETE IGNORE FROM t1 WHERE i = 1; -Warnings: -Error 1451 Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`i`) REFERENCES `t1` (`i`) ON DELETE NO ACTION) -SELECT * FROM t1, t2; -i i -1 1 -DROP TABLE t2, t1; -End of 4.1 tests. -create table t1 ( -a varchar(30), b varchar(30), primary key(a), key(b) -); -select distinct a from t1; -a -drop table t1; -create table t1(a int, key(a)); -insert into t1 values(1); -select a, count(a) from t1 group by a with rollup; -a count(a) -1 1 -NULL 1 -drop table t1; -create table t1 (f1 int, f2 char(1), primary key(f1,f2)); -insert into t1 values ( 1,"e"),(2,"a"),( 3,"c"),(4,"d"); -alter table t1 drop primary key, add primary key (f2, f1); -explain select distinct f1 a, f1 b from t1; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index NULL PRIMARY 5 NULL 4 Using index; Using temporary -explain select distinct f1, f2 from t1; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range NULL PRIMARY 5 NULL 3 Using index for group-by; Using temporary -drop table t1; -CREATE TABLE t1 (id int(11) NOT NULL PRIMARY KEY, name varchar(20), -INDEX (name)); -CREATE TABLE t2 (id int(11) NOT NULL PRIMARY KEY, fkey int(11)); -ALTER TABLE t2 ADD FOREIGN KEY (fkey) REFERENCES t2(id); -INSERT INTO t1 VALUES (1,'A1'),(2,'A2'),(3,'B'); -INSERT INTO t2 VALUES (1,1),(2,2),(3,2),(4,3),(5,3); -EXPLAIN -SELECT COUNT(*) FROM t2 LEFT JOIN t1 ON t2.fkey = t1.id -WHERE t1.name LIKE 'A%'; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index PRIMARY,name name 23 NULL 3 Using where; Using index -1 SIMPLE t2 ref fkey fkey 5 test.t1.id 1 Using where; Using index -EXPLAIN -SELECT COUNT(*) FROM t2 LEFT JOIN t1 ON t2.fkey = t1.id -WHERE t1.name LIKE 'A%' OR FALSE; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 index NULL fkey 5 NULL 5 Using index -1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.fkey 1 Using where -DROP TABLE t1,t2; -CREATE TABLE t1 ( -id int NOT NULL, -name varchar(20) NOT NULL, -dept varchar(20) NOT NULL, -age tinyint(3) unsigned NOT NULL, -PRIMARY KEY (id), -INDEX (name,dept) -) ENGINE=InnoDB; -INSERT INTO t1(id, dept, age, name) VALUES -(3987, 'cs1', 10, 'rs1'), (3988, 'cs2', 20, 'rs1'), (3995, 'cs3', 10, 'rs2'), -(3996, 'cs4', 20, 'rs2'), (4003, 'cs5', 10, 'rs3'), (4004, 'cs6', 20, 'rs3'), -(4011, 'cs7', 10, 'rs4'), (4012, 'cs8', 20, 'rs4'), (4019, 'cs9', 10, 'rs5'), -(4020, 'cs10', 20, 'rs5'),(4027, 'cs11', 10, 'rs6'),(4028, 'cs12', 20, 'rs6'); -EXPLAIN SELECT DISTINCT t1.name, t1.dept FROM t1 WHERE t1.name='rs5'; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range name name 44 NULL 2 Using where; Using index for group-by -SELECT DISTINCT t1.name, t1.dept FROM t1 WHERE t1.name='rs5'; -name dept -rs5 cs10 -rs5 cs9 -DELETE FROM t1; -# Masking (#) number in "rows" column of the following EXPLAIN output, as it may vary (bug#47746). -EXPLAIN SELECT DISTINCT t1.name, t1.dept FROM t1 WHERE t1.name='rs5'; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range name name 44 NULL # Using where; Using index for group-by -SELECT DISTINCT t1.name, t1.dept FROM t1 WHERE t1.name='rs5'; -name dept -DROP TABLE t1; -drop table if exists t1; -show variables like 'innodb_rollback_on_timeout'; -Variable_name Value -innodb_rollback_on_timeout OFF -create table t1 (a int unsigned not null primary key) engine = innodb; -insert into t1 values (1); -commit; -begin work; -insert into t1 values (2); -select * from t1; -a -1 -2 -begin work; -insert into t1 values (5); -select * from t1; -a -1 -5 -insert into t1 values (2); -ERROR HY000: Lock wait timeout exceeded; try restarting transaction -select * from t1; -a -1 -5 -commit; -select * from t1; -a -1 -2 -commit; -select * from t1; -a -1 -2 -5 -drop table t1; -set @save_qcache_size=@@global.query_cache_size; -set @save_qcache_type=@@global.query_cache_type; -set global query_cache_size=10*1024*1024; -set global query_cache_type=1; -drop table if exists `test`; -Warnings: -Note 1051 Unknown table 'test' -CREATE TABLE `test` (`test1` varchar(3) NOT NULL, -`test2` varchar(4) NOT NULL,PRIMARY KEY (`test1`)) -ENGINE=InnoDB DEFAULT CHARSET=latin1; -INSERT INTO `test` (`test1`, `test2`) VALUES ('tes', '5678'); -select * from test; -test1 test2 -tes 5678 -INSERT INTO `test` (`test1`, `test2`) VALUES ('tes', '1234') -ON DUPLICATE KEY UPDATE `test2` = '1234'; -select * from test; -test1 test2 -tes 1234 -flush tables; -select * from test; -test1 test2 -tes 1234 -drop table test; -set global query_cache_type=@save_qcache_type; -set global query_cache_size=@save_qcache_size; -drop table if exists t1; -show variables like 'innodb_rollback_on_timeout'; -Variable_name Value -innodb_rollback_on_timeout OFF -create table t1 (a int unsigned not null primary key) engine = innodb; -insert into t1 values (1); -commit; -begin work; -insert into t1 values (2); -select * from t1; -a -1 -2 -begin work; -insert into t1 values (5); -select * from t1; -a -1 -5 -insert into t1 values (2); -ERROR HY000: Lock wait timeout exceeded; try restarting transaction -select * from t1; -a -1 -5 -commit; -select * from t1; -a -1 -2 -commit; -select * from t1; -a -1 -2 -5 -drop table t1; -create table t1( -id int auto_increment, -c char(1) not null, -counter int not null default 1, -primary key (id), -unique key (c) -) engine=innodb; -insert into t1 (id, c) values -(NULL, 'a'), -(NULL, 'a') -on duplicate key update id = values(id), counter = counter + 1; -select * from t1; -id c counter -2 a 2 -insert into t1 (id, c) values -(NULL, 'b') -on duplicate key update id = values(id), counter = counter + 1; -select * from t1; -id c counter -2 a 2 -3 b 1 -truncate table t1; -insert into t1 (id, c) values (NULL, 'a'); -select * from t1; -id c counter -1 a 1 -insert into t1 (id, c) values (NULL, 'b'), (NULL, 'b') -on duplicate key update id = values(id), c = values(c), counter = counter + 1; -select * from t1; -id c counter -1 a 1 -3 b 2 -insert into t1 (id, c) values (NULL, 'a') -on duplicate key update id = values(id), c = values(c), counter = counter + 1; -select * from t1; -id c counter -3 b 2 -4 a 2 -drop table t1; -CREATE TABLE t1( -id int AUTO_INCREMENT PRIMARY KEY, -stat_id int NOT NULL, -acct_id int DEFAULT NULL, -INDEX idx1 (stat_id, acct_id), -INDEX idx2 (acct_id) -) ENGINE=MyISAM; -CREATE TABLE t2( -id int AUTO_INCREMENT PRIMARY KEY, -stat_id int NOT NULL, -acct_id int DEFAULT NULL, -INDEX idx1 (stat_id, acct_id), -INDEX idx2 (acct_id) -) ENGINE=InnoDB; -INSERT INTO t1(stat_id,acct_id) VALUES -(1,759), (2,831), (3,785), (4,854), (1,921), -(1,553), (2,589), (3,743), (2,827), (2,545), -(4,779), (4,783), (1,597), (1,785), (4,832), -(1,741), (1,833), (3,788), (2,973), (1,907); -INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; -INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; -INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; -INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; -INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; -INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; -INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; -INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; -INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; -INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; -INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; -UPDATE t1 SET acct_id=785 -WHERE MOD(stat_id,2)=0 AND MOD(id,stat_id)=MOD(acct_id,stat_id); -OPTIMIZE TABLE t1; -Table Op Msg_type Msg_text -test.t1 optimize status OK -SELECT COUNT(*) FROM t1; -COUNT(*) -40960 -SELECT COUNT(*) FROM t1 WHERE acct_id=785; -COUNT(*) -8702 -EXPLAIN SELECT COUNT(*) FROM t1 WHERE stat_id IN (1,3) AND acct_id=785; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx1,idx2 idx1 9 NULL 2 Using where; Using index -INSERT INTO t2 SELECT * FROM t1; -OPTIMIZE TABLE t2; -Table Op Msg_type Msg_text -test.t2 optimize note Table does not support optimize, doing recreate + analyze instead -test.t2 optimize status OK -EXPLAIN SELECT COUNT(*) FROM t2 WHERE stat_id IN (1,3) AND acct_id=785; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx1,idx2 idx1 9 NULL 2 Using where; Using index -DROP TABLE t1,t2; -create table t1(a int) engine=innodb; -alter table t1 comment '123'; -show create table t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `a` int(11) DEFAULT NULL -) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='123' -drop table t1; -CREATE TABLE t1 (a CHAR(2), KEY (a)) ENGINE = InnoDB DEFAULT CHARSET=UTF8; -INSERT INTO t1 VALUES ('uk'),('bg'); -SELECT * FROM t1 WHERE a = 'uk'; -a -uk -DELETE FROM t1 WHERE a = 'uk'; -SELECT * FROM t1 WHERE a = 'uk'; -a -UPDATE t1 SET a = 'us' WHERE a = 'uk'; -SELECT * FROM t1 WHERE a = 'uk'; -a -CREATE TABLE t2 (a CHAR(2), KEY (a)) ENGINE = InnoDB; -INSERT INTO t2 VALUES ('uk'),('bg'); -SELECT * FROM t2 WHERE a = 'uk'; -a -uk -DELETE FROM t2 WHERE a = 'uk'; -SELECT * FROM t2 WHERE a = 'uk'; -a -INSERT INTO t2 VALUES ('uk'); -UPDATE t2 SET a = 'us' WHERE a = 'uk'; -SELECT * FROM t2 WHERE a = 'uk'; -a -CREATE TABLE t3 (a CHAR(2), KEY (a)) ENGINE = MyISAM; -INSERT INTO t3 VALUES ('uk'),('bg'); -SELECT * FROM t3 WHERE a = 'uk'; -a -uk -DELETE FROM t3 WHERE a = 'uk'; -SELECT * FROM t3 WHERE a = 'uk'; -a -INSERT INTO t3 VALUES ('uk'); -UPDATE t3 SET a = 'us' WHERE a = 'uk'; -SELECT * FROM t3 WHERE a = 'uk'; -a -DROP TABLE t1,t2,t3; -create table t1 (a int) engine=innodb; -select * from bug29807; -ERROR 42S02: Table 'test.bug29807' doesn't exist -drop table t1; -drop table bug29807; -ERROR 42S02: Unknown table 'bug29807' -create table bug29807 (a int); -drop table bug29807; -CREATE TABLE t1 (a INT) ENGINE=InnoDB; -CREATE TABLE t2 (a INT) ENGINE=InnoDB; -switch to connection c1 -SET AUTOCOMMIT=0; -INSERT INTO t2 VALUES (1); -switch to connection c2 -SET AUTOCOMMIT=0; -LOCK TABLES t1 READ, t2 READ; -ERROR HY000: Lock wait timeout exceeded; try restarting transaction -switch to connection c1 -COMMIT; -INSERT INTO t1 VALUES (1); -switch to connection default -SET AUTOCOMMIT=default; -DROP TABLE t1,t2; -CREATE TABLE t1 ( -id int NOT NULL auto_increment PRIMARY KEY, -b int NOT NULL, -c datetime NOT NULL, -INDEX idx_b(b), -INDEX idx_c(c) -) ENGINE=InnoDB; -CREATE TABLE t2 ( -b int NOT NULL auto_increment PRIMARY KEY, -c datetime NOT NULL -) ENGINE= MyISAM; -INSERT INTO t2(c) VALUES ('2007-01-01'); -INSERT INTO t2(c) SELECT c FROM t2; -INSERT INTO t2(c) SELECT c FROM t2; -INSERT INTO t2(c) SELECT c FROM t2; -INSERT INTO t2(c) SELECT c FROM t2; -INSERT INTO t2(c) SELECT c FROM t2; -INSERT INTO t2(c) SELECT c FROM t2; -INSERT INTO t2(c) SELECT c FROM t2; -INSERT INTO t2(c) SELECT c FROM t2; -INSERT INTO t2(c) SELECT c FROM t2; -INSERT INTO t2(c) SELECT c FROM t2; -INSERT INTO t1(b,c) SELECT b,c FROM t2; -UPDATE t2 SET c='2007-01-02'; -INSERT INTO t1(b,c) SELECT b,c FROM t2; -UPDATE t2 SET c='2007-01-03'; -INSERT INTO t1(b,c) SELECT b,c FROM t2; -set @@sort_buffer_size=8192; -Warnings: -Warning 1292 Truncated incorrect sort_buffer_size value: '8192' -SELECT COUNT(*) FROM t1; -COUNT(*) -3072 -EXPLAIN -SELECT COUNT(*) FROM t1 -WHERE (c >= '2007-01-02' AND c <= '2007-01-03') OR b >= 1; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 ALL idx_b,idx_c NULL NULL NULL # Using where -SELECT COUNT(*) FROM t1 -WHERE (c >= '2007-01-02' AND c <= '2007-01-03') OR b >= 1; -COUNT(*) -3072 -EXPLAIN -SELECT COUNT(*) FROM t1 FORCE INDEX(idx_b, idx_c) -WHERE (c >= '2007-01-02' AND c <= '2007-01-03') OR b >= 1; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index_merge idx_b,idx_c idx_c,idx_b 8,4 NULL # Using sort_union(idx_c,idx_b); Using where -SELECT COUNT(*) FROM t1 FORCE INDEX(idx_b, idx_c) -WHERE (c >= '2007-01-02' AND c <= '2007-01-03') OR b >= 1; -COUNT(*) -3072 -set @@sort_buffer_size=default; -DROP TABLE t1,t2; -CREATE TABLE t1 (a int, b int); -insert into t1 values (1,1),(1,2); -CREATE TABLE t2 (primary key (a)) select * from t1; -ERROR 23000: Duplicate entry '1' for key 'PRIMARY' -drop table if exists t2; -Warnings: -Note 1051 Unknown table 't2' -CREATE TEMPORARY TABLE t2 (primary key (a)) select * from t1; -ERROR 23000: Duplicate entry '1' for key 'PRIMARY' -drop table if exists t2; -Warnings: -Note 1051 Unknown table 't2' -CREATE TABLE t2 (a int, b int, primary key (a)); -BEGIN; -INSERT INTO t2 values(100,100); -CREATE TABLE IF NOT EXISTS t2 (primary key (a)) select * from t1; -ERROR 23000: Duplicate entry '1' for key 'PRIMARY' -SELECT * from t2; -a b -100 100 -ROLLBACK; -SELECT * from t2; -a b -100 100 -TRUNCATE table t2; -INSERT INTO t2 select * from t1; -ERROR 23000: Duplicate entry '1' for key 'PRIMARY' -SELECT * from t2; -a b -drop table t2; -CREATE TEMPORARY TABLE t2 (a int, b int, primary key (a)); -BEGIN; -INSERT INTO t2 values(100,100); -CREATE TEMPORARY TABLE IF NOT EXISTS t2 (primary key (a)) select * from t1; -ERROR 23000: Duplicate entry '1' for key 'PRIMARY' -SELECT * from t2; -a b -100 100 -COMMIT; -BEGIN; -INSERT INTO t2 values(101,101); -CREATE TEMPORARY TABLE IF NOT EXISTS t2 (primary key (a)) select * from t1; -ERROR 23000: Duplicate entry '1' for key 'PRIMARY' -SELECT * from t2; -a b -100 100 -101 101 -ROLLBACK; -SELECT * from t2; -a b -100 100 -TRUNCATE table t2; -INSERT INTO t2 select * from t1; -ERROR 23000: Duplicate entry '1' for key 'PRIMARY' -SELECT * from t2; -a b -drop table t1,t2; -create table t1(f1 varchar(800) binary not null, key(f1)) -character set utf8 collate utf8_general_ci; -Warnings: -Warning 1071 Specified key was too long; max key length is 767 bytes -insert into t1 values('aaa'); -drop table t1; -CREATE TABLE t1 (a INT PRIMARY KEY, b INT, c FLOAT, KEY b(b)) ENGINE = INNODB; -INSERT INTO t1 VALUES ( 1 , 1 , 1); -INSERT INTO t1 SELECT a + 1 , MOD(a + 1 , 20), 1 FROM t1; -INSERT INTO t1 SELECT a + 2 , MOD(a + 2 , 20), 1 FROM t1; -INSERT INTO t1 SELECT a + 4 , MOD(a + 4 , 20), 1 FROM t1; -INSERT INTO t1 SELECT a + 8 , MOD(a + 8 , 20), 1 FROM t1; -INSERT INTO t1 SELECT a + 16, MOD(a + 16, 20), 1 FROM t1; -INSERT INTO t1 SELECT a + 32, MOD(a + 32, 20), 1 FROM t1; -INSERT INTO t1 SELECT a + 64, MOD(a + 64, 20), 1 FROM t1; -EXPLAIN SELECT b, SUM(c) FROM t1 GROUP BY b; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index NULL b 5 NULL 128 -EXPLAIN SELECT SQL_BIG_RESULT b, SUM(c) FROM t1 GROUP BY b; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 ALL NULL NULL NULL NULL 128 Using filesort -DROP TABLE t1; -drop table if exists t1; -show variables like 'innodb_rollback_on_timeout'; -Variable_name Value -innodb_rollback_on_timeout OFF -create table t1 (a int unsigned not null primary key) engine = innodb; -insert into t1 values (1); -commit; -begin work; -insert into t1 values (2); -select * from t1; -a -1 -2 -begin work; -insert into t1 values (5); -select * from t1; -a -1 -5 -insert into t1 values (2); -ERROR HY000: Lock wait timeout exceeded; try restarting transaction -select * from t1; -a -1 -5 -commit; -select * from t1; -a -1 -2 -commit; -select * from t1; -a -1 -2 -5 -drop table t1; -drop table if exists t1; -create table t1 (a int) engine=innodb; -alter table t1 alter a set default 1; -drop table t1; - -Bug#24918 drop table and lock / inconsistent between -perm and temp tables - -Check transactional tables under LOCK TABLES - -drop table if exists t24918, t24918_tmp, t24918_trans, t24918_trans_tmp, -t24918_access; -create table t24918_access (id int); -create table t24918 (id int) engine=myisam; -create temporary table t24918_tmp (id int) engine=myisam; -create table t24918_trans (id int) engine=innodb; -create temporary table t24918_trans_tmp (id int) engine=innodb; -lock table t24918 write, t24918_tmp write, t24918_trans write, t24918_trans_tmp write; -drop table t24918; -select * from t24918_access; -ERROR HY000: Table 't24918_access' was not locked with LOCK TABLES -drop table t24918_trans; -select * from t24918_access; -ERROR HY000: Table 't24918_access' was not locked with LOCK TABLES -drop table t24918_trans_tmp; -select * from t24918_access; -ERROR HY000: Table 't24918_access' was not locked with LOCK TABLES -drop table t24918_tmp; -select * from t24918_access; -ERROR HY000: Table 't24918_access' was not locked with LOCK TABLES -unlock tables; -drop table t24918_access; -CREATE TABLE t1 (a int, b int, PRIMARY KEY (a), KEY bkey (b)) ENGINE=InnoDB; -INSERT INTO t1 VALUES (1,2),(3,2),(2,2),(4,2),(5,2),(6,2),(7,2),(8,2); -INSERT INTO t1 SELECT a + 8, 2 FROM t1; -INSERT INTO t1 SELECT a + 16, 1 FROM t1; -EXPLAIN SELECT * FROM t1 WHERE b=2 ORDER BY a; -id 1 -select_type SIMPLE -table t1 -type ref -possible_keys bkey -key bkey -key_len 5 -ref const -rows 16 -Extra Using where; Using index -SELECT * FROM t1 WHERE b=2 ORDER BY a; -a b -1 2 -2 2 -3 2 -4 2 -5 2 -6 2 -7 2 -8 2 -9 2 -10 2 -11 2 -12 2 -13 2 -14 2 -15 2 -16 2 -EXPLAIN SELECT * FROM t1 WHERE b BETWEEN 1 AND 2 ORDER BY a; -id 1 -select_type SIMPLE -table t1 -type range -possible_keys bkey -key bkey -key_len 5 -ref NULL -rows 16 -Extra Using where; Using index; Using filesort -SELECT * FROM t1 WHERE b BETWEEN 1 AND 2 ORDER BY a; -a b -1 2 -2 2 -3 2 -4 2 -5 2 -6 2 -7 2 -8 2 -9 2 -10 2 -11 2 -12 2 -13 2 -14 2 -15 2 -16 2 -17 1 -18 1 -19 1 -20 1 -21 1 -22 1 -23 1 -24 1 -25 1 -26 1 -27 1 -28 1 -29 1 -30 1 -31 1 -32 1 -EXPLAIN SELECT * FROM t1 WHERE b BETWEEN 1 AND 2 ORDER BY b,a; -id 1 -select_type SIMPLE -table t1 -type range -possible_keys bkey -key bkey -key_len 5 -ref NULL -rows 16 -Extra Using where; Using index -SELECT * FROM t1 WHERE b BETWEEN 1 AND 2 ORDER BY b,a; -a b -17 1 -18 1 -19 1 -20 1 -21 1 -22 1 -23 1 -24 1 -25 1 -26 1 -27 1 -28 1 -29 1 -30 1 -31 1 -32 1 -1 2 -2 2 -3 2 -4 2 -5 2 -6 2 -7 2 -8 2 -9 2 -10 2 -11 2 -12 2 -13 2 -14 2 -15 2 -16 2 -CREATE TABLE t2 (a int, b int, c int, PRIMARY KEY (a), KEY bkey (b,c)) -ENGINE=InnoDB; -INSERT INTO t2 VALUES (1,1,1),(3,1,1),(2,1,1),(4,1,1); -INSERT INTO t2 SELECT a + 4, 1, 1 FROM t2; -INSERT INTO t2 SELECT a + 8, 1, 1 FROM t2; -EXPLAIN SELECT * FROM t2 WHERE b=1 ORDER BY a; -id 1 -select_type SIMPLE -table t2 -type ref -possible_keys bkey -key bkey -key_len 5 -ref const -rows 8 -Extra Using where; Using index; Using filesort -SELECT * FROM t2 WHERE b=1 ORDER BY a; -a b c -1 1 1 -2 1 1 -3 1 1 -4 1 1 -5 1 1 -6 1 1 -7 1 1 -8 1 1 -9 1 1 -10 1 1 -11 1 1 -12 1 1 -13 1 1 -14 1 1 -15 1 1 -16 1 1 -EXPLAIN SELECT * FROM t2 WHERE b=1 AND c=1 ORDER BY a; -id 1 -select_type SIMPLE -table t2 -type ref -possible_keys bkey -key bkey -key_len 10 -ref const,const -rows 8 -Extra Using where; Using index -SELECT * FROM t2 WHERE b=1 AND c=1 ORDER BY a; -a b c -1 1 1 -2 1 1 -3 1 1 -4 1 1 -5 1 1 -6 1 1 -7 1 1 -8 1 1 -9 1 1 -10 1 1 -11 1 1 -12 1 1 -13 1 1 -14 1 1 -15 1 1 -16 1 1 -EXPLAIN SELECT * FROM t2 WHERE b=1 AND c=1 ORDER BY b,c,a; -id 1 -select_type SIMPLE -table t2 -type ref -possible_keys bkey -key bkey -key_len 10 -ref const,const -rows 8 -Extra Using where; Using index -SELECT * FROM t2 WHERE b=1 AND c=1 ORDER BY b,c,a; -a b c -1 1 1 -2 1 1 -3 1 1 -4 1 1 -5 1 1 -6 1 1 -7 1 1 -8 1 1 -9 1 1 -10 1 1 -11 1 1 -12 1 1 -13 1 1 -14 1 1 -15 1 1 -16 1 1 -EXPLAIN SELECT * FROM t2 WHERE b=1 AND c=1 ORDER BY c,a; -id 1 -select_type SIMPLE -table t2 -type ref -possible_keys bkey -key bkey -key_len 10 -ref const,const -rows 8 -Extra Using where; Using index -SELECT * FROM t2 WHERE b=1 AND c=1 ORDER BY c,a; -a b c -1 1 1 -2 1 1 -3 1 1 -4 1 1 -5 1 1 -6 1 1 -7 1 1 -8 1 1 -9 1 1 -10 1 1 -11 1 1 -12 1 1 -13 1 1 -14 1 1 -15 1 1 -16 1 1 -DROP TABLE t1,t2; -CREATE TABLE t1 (a INT, PRIMARY KEY (a)) ENGINE=InnoDB; -INSERT INTO t1 VALUES (1),(2),(3),(4),(5),(6),(7),(8); -INSERT INTO t1 SELECT a + 8 FROM t1; -INSERT INTO t1 SELECT a + 16 FROM t1; -CREATE PROCEDURE p1 () -BEGIN -DECLARE i INT DEFAULT 50; -DECLARE cnt INT; -START TRANSACTION; -ALTER TABLE t1 ENGINE=InnoDB; -COMMIT; -START TRANSACTION; -WHILE (i > 0) DO -SET i = i - 1; -SELECT COUNT(*) INTO cnt FROM t1 LOCK IN SHARE MODE; -END WHILE; -COMMIT; -END;| -CALL p1(); -CALL p1(); -CALL p1(); -DROP PROCEDURE p1; -DROP TABLE t1; -create table t1(a text) engine=innodb default charset=utf8; -insert into t1 values('aaa'); -alter table t1 add index(a(1024)); -Warnings: -Warning 1071 Specified key was too long; max key length is 767 bytes -Warning 1071 Specified key was too long; max key length is 767 bytes -show create table t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `a` text, - KEY `a` (`a`(255)) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 -drop table t1; -CREATE TABLE t1 ( -a INT, -b INT, -KEY (b) -) ENGINE=InnoDB; -INSERT INTO t1 VALUES (1,10), (2,10), (2,20), (3,30); -START TRANSACTION; -SELECT * FROM t1 WHERE b=20 FOR UPDATE; -a b -2 20 -START TRANSACTION; -SELECT * FROM t1 WHERE b=10 ORDER BY A FOR UPDATE; -a b -1 10 -2 10 -ROLLBACK; -ROLLBACK; -DROP TABLE t1; -CREATE TABLE t1( -a INT, -b INT NOT NULL, -c INT NOT NULL, -d INT, -UNIQUE KEY (c,b) -) engine=innodb; -INSERT INTO t1 VALUES (1,1,1,50), (1,2,3,40), (2,1,3,4); -EXPLAIN SELECT c,b,d FROM t1 GROUP BY c,b,d; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using filesort -SELECT c,b,d FROM t1 GROUP BY c,b,d; -c b d -1 1 50 -3 1 4 -3 2 40 -EXPLAIN SELECT c,b,d FROM t1 GROUP BY c,b,d ORDER BY NULL; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 ALL NULL NULL NULL NULL 3 -SELECT c,b,d FROM t1 GROUP BY c,b,d ORDER BY NULL; -c b d -1 1 50 -3 1 4 -3 2 40 -EXPLAIN SELECT c,b,d FROM t1 ORDER BY c,b,d; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using filesort -SELECT c,b,d FROM t1 ORDER BY c,b,d; -c b d -1 1 50 -3 1 4 -3 2 40 -EXPLAIN SELECT c,b,d FROM t1 GROUP BY c,b; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index NULL c 8 NULL 3 -SELECT c,b,d FROM t1 GROUP BY c,b; -c b d -1 1 50 -3 1 4 -3 2 40 -EXPLAIN SELECT c,b FROM t1 GROUP BY c,b; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index NULL c 8 NULL 3 Using index -SELECT c,b FROM t1 GROUP BY c,b; -c b -1 1 -3 1 -3 2 -DROP TABLE t1; -CREATE TABLE t1 (a INT, b INT, PRIMARY KEY (a), INDEX b (b)) ENGINE=InnoDB; -INSERT INTO t1(a,b) VALUES (1,1), (2,2), (3,2); -EXPLAIN SELECT * FROM t1 WHERE b=2 ORDER BY a ASC; -id 1 -select_type SIMPLE -table t1 -type ref -possible_keys b -key b -key_len 5 -ref const -rows 1 -Extra Using where; Using index -SELECT * FROM t1 WHERE b=2 ORDER BY a ASC; -a b -2 2 -3 2 -EXPLAIN SELECT * FROM t1 WHERE b=2 ORDER BY a DESC; -id 1 -select_type SIMPLE -table t1 -type ref -possible_keys b -key b -key_len 5 -ref const -rows 1 -Extra Using where; Using index -SELECT * FROM t1 WHERE b=2 ORDER BY a DESC; -a b -3 2 -2 2 -EXPLAIN SELECT * FROM t1 ORDER BY b ASC, a ASC; -id 1 -select_type SIMPLE -table t1 -type index -possible_keys NULL -key b -key_len 5 -ref NULL -rows 3 -Extra Using index -SELECT * FROM t1 ORDER BY b ASC, a ASC; -a b -1 1 -2 2 -3 2 -EXPLAIN SELECT * FROM t1 ORDER BY b DESC, a DESC; -id 1 -select_type SIMPLE -table t1 -type index -possible_keys NULL -key b -key_len 5 -ref NULL -rows 3 -Extra Using index -SELECT * FROM t1 ORDER BY b DESC, a DESC; -a b -3 2 -2 2 -1 1 -EXPLAIN SELECT * FROM t1 ORDER BY b ASC, a DESC; -id 1 -select_type SIMPLE -table t1 -type index -possible_keys NULL -key b -key_len 5 -ref NULL -rows 3 -Extra Using index; Using filesort -SELECT * FROM t1 ORDER BY b ASC, a DESC; -a b -1 1 -3 2 -2 2 -EXPLAIN SELECT * FROM t1 ORDER BY b DESC, a ASC; -id 1 -select_type SIMPLE -table t1 -type index -possible_keys NULL -key b -key_len 5 -ref NULL -rows 3 -Extra Using index; Using filesort -SELECT * FROM t1 ORDER BY b DESC, a ASC; -a b -2 2 -3 2 -1 1 -DROP TABLE t1; - -# -# Bug#27610: ALTER TABLE ROW_FORMAT=... does not rebuild the table. -# - -# - prepare; - -DROP TABLE IF EXISTS t1; - -CREATE TABLE t1(c INT) -ENGINE = InnoDB -ROW_FORMAT = COMPACT; - -# - initial check; - -SELECT table_schema, table_name, row_format -FROM INFORMATION_SCHEMA.TABLES -WHERE table_schema = DATABASE() AND table_name = 't1'; -table_schema table_name row_format -test t1 Compact - -# - change ROW_FORMAT and check; - -ALTER TABLE t1 ROW_FORMAT = REDUNDANT; - -SELECT table_schema, table_name, row_format -FROM INFORMATION_SCHEMA.TABLES -WHERE table_schema = DATABASE() AND table_name = 't1'; -table_schema table_name row_format -test t1 Redundant - -# - that's it, cleanup. - -DROP TABLE t1; -create table t1(a char(10) not null, unique key aa(a(1)), -b char(4) not null, unique key bb(b(4))) engine=innodb; -desc t1; -Field Type Null Key Default Extra -a char(10) NO UNI NULL -b char(4) NO PRI NULL -show create table t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `a` char(10) NOT NULL, - `b` char(4) NOT NULL, - UNIQUE KEY `bb` (`b`), - UNIQUE KEY `aa` (`a`(1)) -) ENGINE=InnoDB DEFAULT CHARSET=latin1 -drop table t1; -CREATE TABLE t1 (id int, type char(6), d int, INDEX idx(id,d)) ENGINE=InnoDB; -INSERT INTO t1 VALUES -(191, 'member', 1), (NULL, 'member', 3), (NULL, 'member', 4), (201, 'member', 2); -EXPLAIN SELECT * FROM t1 WHERE id=191 OR id IS NULL ORDER BY d; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 ALL idx NULL NULL NULL 4 Using where; Using filesort -SELECT * FROM t1 WHERE id=191 OR id IS NULL ORDER BY d; -id type d -191 member 1 -NULL member 3 -NULL member 4 -DROP TABLE t1; -set @my_innodb_autoextend_increment=@@global.innodb_autoextend_increment; -set global innodb_autoextend_increment=8; -set global innodb_autoextend_increment=@my_innodb_autoextend_increment; -set @my_innodb_commit_concurrency=@@global.innodb_commit_concurrency; -set global innodb_commit_concurrency=0; -set global innodb_commit_concurrency=@my_innodb_commit_concurrency; -CREATE TABLE t1 (a int, b int, c int, PRIMARY KEY (a), KEY t1_b (b)) -ENGINE=InnoDB; -INSERT INTO t1 (a,b,c) VALUES (1,1,1), (2,1,1), (3,1,1), (4,1,1); -INSERT INTO t1 (a,b,c) SELECT a+4,b,c FROM t1; -EXPLAIN SELECT a, b, c FROM t1 WHERE b = 1 ORDER BY a DESC LIMIT 5; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index t1_b PRIMARY 4 NULL 8 Using where -SELECT a, b, c FROM t1 WHERE b = 1 ORDER BY a DESC LIMIT 5; -a b c -8 1 1 -7 1 1 -6 1 1 -5 1 1 -4 1 1 -DROP TABLE t1; -DROP TABLE IF EXISTS t1; -CREATE TABLE t1 (a char(50)) ENGINE=InnoDB; -CREATE INDEX i1 on t1 (a(3)); -SELECT * FROM t1 WHERE a = 'abcde'; -a -DROP TABLE t1; -# -# BUG #26288: savepoint are not deleted on comit, if the transaction -# was otherwise empty -# -BEGIN; -SAVEPOINT s1; -COMMIT; -RELEASE SAVEPOINT s1; -ERROR 42000: SAVEPOINT s1 does not exist -BEGIN; -SAVEPOINT s2; -COMMIT; -ROLLBACK TO SAVEPOINT s2; -ERROR 42000: SAVEPOINT s2 does not exist -BEGIN; -SAVEPOINT s3; -ROLLBACK; -RELEASE SAVEPOINT s3; -ERROR 42000: SAVEPOINT s3 does not exist -BEGIN; -SAVEPOINT s4; -ROLLBACK; -ROLLBACK TO SAVEPOINT s4; -ERROR 42000: SAVEPOINT s4 does not exist -CREATE TABLE t1 (f1 INTEGER PRIMARY KEY COMMENT 'My ID#', f2 INTEGER DEFAULT NULL, f3 CHAR(10) DEFAULT 'My ID#', CONSTRAINT f2_ref FOREIGN KEY (f2) REFERENCES t1 (f1)) ENGINE=INNODB; -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) NOT NULL COMMENT 'My ID#', - `f2` int(11) DEFAULT NULL, - `f3` char(10) DEFAULT 'My ID#', - PRIMARY KEY (`f1`), - KEY `f2_ref` (`f2`), - CONSTRAINT `f2_ref` FOREIGN KEY (`f2`) REFERENCES `t1` (`f1`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1 -DROP TABLE t1; -# -# Bug #36995: valgrind error in remove_const during subquery executions -# -create table t1 (a bit(1) not null,b int) engine=myisam; -create table t2 (c int) engine=innodb; -explain -select b from t1 where a not in (select b from t1,t2 group by a) group by a; -id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables -2 DEPENDENT SUBQUERY t1 system NULL NULL NULL NULL 0 const row not found -2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 1 -DROP TABLE t1,t2; -End of 5.0 tests -CREATE TABLE `t2` ( -`k` int(11) NOT NULL auto_increment, -`a` int(11) default NULL, -`c` int(11) default NULL, -PRIMARY KEY (`k`), -UNIQUE KEY `idx_1` (`a`) -); -insert into t2 ( a ) values ( 6 ) on duplicate key update c = -ifnull( c, -0 ) + 1; -insert into t2 ( a ) values ( 7 ) on duplicate key update c = -ifnull( c, -0 ) + 1; -select last_insert_id(); -last_insert_id() -2 -select * from t2; -k a c -1 6 NULL -2 7 NULL -insert into t2 ( a ) values ( 6 ) on duplicate key update c = -ifnull( c, -0 ) + 1; -select last_insert_id(); -last_insert_id() -2 -select last_insert_id(0); -last_insert_id(0) -0 -insert into t2 ( a ) values ( 6 ) on duplicate key update c = -ifnull( c, -0 ) + 1; -select last_insert_id(); -last_insert_id() -0 -select * from t2; -k a c -1 6 2 -2 7 NULL -insert ignore into t2 values (null,6,1),(10,8,1); -select last_insert_id(); -last_insert_id() -0 -insert ignore into t2 values (null,6,1),(null,8,1),(null,15,1),(null,20,1); -select last_insert_id(); -last_insert_id() -11 -select * from t2; -k a c -1 6 2 -2 7 NULL -10 8 1 -11 15 1 -12 20 1 -insert into t2 ( a ) values ( 6 ) on duplicate key update c = -ifnull( c, -0 ) + 1, k=last_insert_id(k); -select last_insert_id(); -last_insert_id() -1 -select * from t2; -k a c -1 6 3 -2 7 NULL -10 8 1 -11 15 1 -12 20 1 -drop table t2; -drop table if exists t1, t2; -create table t1 (i int); -alter table t1 modify i int default 1; -alter table t1 modify i int default 2, rename t2; -lock table t2 write; -alter table t2 modify i int default 3; -unlock tables; -lock table t2 write; -alter table t2 modify i int default 4, rename t1; -unlock tables; -drop table t1; -drop table if exists t1; -create table t1 (i int); -insert into t1 values (); -lock table t1 write; -alter table t1 modify i int default 1; -insert into t1 values (); -select * from t1; -i -NULL -1 -alter table t1 change i c char(10) default "Two"; -insert into t1 values (); -select * from t1; -c -NULL -1 -Two -unlock tables; -select * from t1; -c -NULL -1 -Two -drop tables t1; -create table t1(f1 varchar(5) unique, f2 timestamp NOT NULL DEFAULT -CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP); -insert into t1(f1) values(1); -select @a:=f2 from t1; -@a:=f2 -# -update t1 set f1=1; -select @b:=f2 from t1; -@b:=f2 -# -select if(@a=@b,"ok","wrong"); -if(@a=@b,"ok","wrong") -ok -insert into t1(f1) values (1) on duplicate key update f1="1"; -select @b:=f2 from t1; -@b:=f2 -# -select if(@a=@b,"ok","wrong"); -if(@a=@b,"ok","wrong") -ok -insert into t1(f1) select f1 from t1 on duplicate key update f1="1"; -select @b:=f2 from t1; -@b:=f2 -# -select if(@a=@b,"ok","wrong"); -if(@a=@b,"ok","wrong") -ok -drop table t1; -SET SESSION AUTOCOMMIT = 0; -SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; -set binlog_format=mixed; -# Switch to connection con1 -CREATE TABLE t1 (a INT PRIMARY KEY, b VARCHAR(256)) -ENGINE = InnoDB; -INSERT INTO t1 VALUES (1,2); -# 1. test for locking: -BEGIN; -UPDATE t1 SET b = 12 WHERE a = 1; -affected rows: 1 -info: Rows matched: 1 Changed: 1 Warnings: 0 -SELECT * FROM t1; -a b -1 12 -# Switch to connection con2 -UPDATE t1 SET b = 21 WHERE a = 1; -ERROR HY000: Lock wait timeout exceeded; try restarting transaction -# Switch to connection con1 -SELECT * FROM t1; -a b -1 12 -ROLLBACK; -# 2. test for serialized update: -CREATE TABLE t2 (a INT); -TRUNCATE t1; -INSERT INTO t1 VALUES (1,'init'); -CREATE PROCEDURE p1() -BEGIN -UPDATE t1 SET b = CONCAT(b, '+con2') WHERE a = 1; -INSERT INTO t2 VALUES (); -END| -BEGIN; -UPDATE t1 SET b = CONCAT(b, '+con1') WHERE a = 1; -affected rows: 1 -info: Rows matched: 1 Changed: 1 Warnings: 0 -SELECT * FROM t1; -a b -1 init+con1 -# Switch to connection con2 -CALL p1;; -# Switch to connection con1 -SELECT * FROM t1; -a b -1 init+con1 -COMMIT; -SELECT * FROM t1; -a b -1 init+con1 -# Switch to connection con2 -SELECT * FROM t1; -a b -1 init+con1+con2 -# Switch to connection con1 -# 3. test for updated key column: -TRUNCATE t1; -TRUNCATE t2; -INSERT INTO t1 VALUES (1,'init'); -BEGIN; -UPDATE t1 SET a = 2, b = CONCAT(b, '+con1') WHERE a = 1; -affected rows: 1 -info: Rows matched: 1 Changed: 1 Warnings: 0 -SELECT * FROM t1; -a b -2 init+con1 -# Switch to connection con2 -CALL p1;; -# Switch to connection con1 -SELECT * FROM t1; -a b -2 init+con1 -COMMIT; -SELECT * FROM t1; -a b -2 init+con1 -# Switch to connection con2 -SELECT * FROM t1; -a b -2 init+con1 -DROP PROCEDURE p1; -DROP TABLE t1, t2; -CREATE TABLE t1 (a INT NOT NULL, b INT NOT NULL, PRIMARY KEY (a,b)) engine=innodb; -CREATE TABLE t2 (c INT NOT NULL, d INT NOT NULL, PRIMARY KEY (c,d), -CONSTRAINT c2 FOREIGN KEY f2 (c) REFERENCES t1 (a,b) ON UPDATE NO ACTION) engine=innodb; -ERROR 42000: Incorrect foreign key definition for 'f2': Key reference and table reference don't match -CREATE TABLE t2 (c INT NOT NULL, d INT NOT NULL, PRIMARY KEY (c,d), -CONSTRAINT c2 FOREIGN KEY (c) REFERENCES t1 (a,b) ON UPDATE NO ACTION) engine=innodb; -ERROR 42000: Incorrect foreign key definition for 'c2': Key reference and table reference don't match -CREATE TABLE t2 (c INT NOT NULL, d INT NOT NULL, PRIMARY KEY (c,d), -CONSTRAINT c1 FOREIGN KEY c2 (c) REFERENCES t1 (a) ON DELETE NO ACTION, -CONSTRAINT c2 FOREIGN KEY (c) REFERENCES t1 (a) ON UPDATE NO ACTION) engine=innodb; -ALTER TABLE t2 DROP FOREIGN KEY c2; -DROP TABLE t2; -CREATE TABLE t2 (c INT NOT NULL, d INT NOT NULL, PRIMARY KEY (c,d), -FOREIGN KEY (c) REFERENCES t1 (a,k) ON UPDATE NO ACTION) engine=innodb; -ERROR 42000: Incorrect foreign key definition for 'foreign key without name': Key reference and table reference don't match -CREATE TABLE t2 (c INT NOT NULL, d INT NOT NULL, PRIMARY KEY (c,d), -FOREIGN KEY f1 (c) REFERENCES t1 (a,k) ON UPDATE NO ACTION) engine=innodb; -ERROR 42000: Incorrect foreign key definition for 'f1': Key reference and table reference don't match -CREATE TABLE t2 (c INT NOT NULL, d INT NOT NULL, PRIMARY KEY (c,d), -CONSTRAINT c1 FOREIGN KEY f1 (c) REFERENCES t1 (a) ON DELETE NO ACTION, -CONSTRAINT c2 FOREIGN KEY (c) REFERENCES t1 (a) ON UPDATE NO ACTION, -FOREIGN KEY f3 (c) REFERENCES t1 (a) ON UPDATE NO ACTION, -FOREIGN KEY (c) REFERENCES t1 (a) ON UPDATE NO ACTION) engine=innodb; -SHOW CREATE TABLE t2; -Table Create Table -t2 CREATE TABLE `t2` ( - `c` int(11) NOT NULL, - `d` int(11) NOT NULL, - PRIMARY KEY (`c`,`d`), - CONSTRAINT `c1` FOREIGN KEY (`c`) REFERENCES `t1` (`a`) ON DELETE NO ACTION, - CONSTRAINT `c2` FOREIGN KEY (`c`) REFERENCES `t1` (`a`) ON UPDATE NO ACTION, - CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`c`) REFERENCES `t1` (`a`) ON UPDATE NO ACTION, - CONSTRAINT `t2_ibfk_2` FOREIGN KEY (`c`) REFERENCES `t1` (`a`) ON UPDATE NO ACTION -) ENGINE=InnoDB DEFAULT CHARSET=latin1 -DROP TABLE t2; -DROP TABLE t1; -create table t1 (a int auto_increment primary key) engine=innodb; -alter table t1 order by a; -Warnings: -Warning 1105 ORDER BY ignored as there is a user-defined clustered index in the table 't1' -drop table t1; -CREATE TABLE t1 -(vid integer NOT NULL, -tid integer NOT NULL, -idx integer NOT NULL, -name varchar(128) NOT NULL, -type varchar(128) NULL, -PRIMARY KEY(idx, vid, tid), -UNIQUE(vid, tid, name) -) ENGINE=InnoDB; -INSERT INTO t1 VALUES -(1,1,1,'pk',NULL),(2,1,1,'pk',NULL),(3,1,1,'pk',NULL),(4,1,1,'c1',NULL), -(5,1,1,'pk',NULL),(1,1,2,'c1',NULL),(2,1,2,'c1',NULL),(3,1,2,'c1',NULL), -(4,1,2,'c2',NULL),(5,1,2,'c1',NULL),(2,1,3,'c2',NULL),(3,1,3,'c2',NULL), -(4,1,3,'pk',NULL),(5,1,3,'c2',NULL), -(2,1,4,'c_extra',NULL),(3,1,4,'c_extra',NULL); -EXPLAIN SELECT * FROM t1 FORCE INDEX (PRIMARY) WHERE tid = 1 AND vid = 3 ORDER BY idx DESC; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index NULL PRIMARY 12 NULL 16 Using where -SELECT * FROM t1 FORCE INDEX (PRIMARY) WHERE tid = 1 AND vid = 3 ORDER BY idx DESC; -vid tid idx name type -3 1 4 c_extra NULL -3 1 3 c2 NULL -3 1 2 c1 NULL -3 1 1 pk NULL -DROP TABLE t1; -# -# Bug #44290: explain crashes for subquery with distinct in -# SQL_SELECT::test_quick_select -# (reproduced only with InnoDB tables) -# -CREATE TABLE t1 (c1 INT, c2 INT, c3 INT, KEY (c3), KEY (c2, c3)) -ENGINE=InnoDB; -INSERT INTO t1 VALUES (1,1,1), (1,1,1), (1,1,2), (1,1,1), (1,1,2); -SELECT 1 FROM (SELECT COUNT(DISTINCT c1) -FROM t1 WHERE c2 IN (1, 1) AND c3 = 2 GROUP BY c2) x; -1 -1 -EXPLAIN -SELECT 1 FROM (SELECT COUNT(DISTINCT c1) -FROM t1 WHERE c2 IN (1, 1) AND c3 = 2 GROUP BY c2) x; -id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY <derived2> system NULL NULL NULL NULL 1 -2 DERIVED t1 index c3,c2 c2 10 NULL 5 -DROP TABLE t1; -CREATE TABLE t1 (c1 REAL, c2 REAL, c3 REAL, KEY (c3), KEY (c2, c3)) -ENGINE=InnoDB; -INSERT INTO t1 VALUES (1,1,1), (1,1,1), (1,1,2), (1,1,1), (1,1,2); -SELECT 1 FROM (SELECT COUNT(DISTINCT c1) -FROM t1 WHERE c2 IN (1, 1) AND c3 = 2 GROUP BY c2) x; -1 -1 -EXPLAIN -SELECT 1 FROM (SELECT COUNT(DISTINCT c1) -FROM t1 WHERE c2 IN (1, 1) AND c3 = 2 GROUP BY c2) x; -id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY <derived2> system NULL NULL NULL NULL 1 -2 DERIVED t1 index c3,c2 c2 18 NULL 5 -DROP TABLE t1; -CREATE TABLE t1 (c1 DECIMAL(12,2), c2 DECIMAL(12,2), c3 DECIMAL(12,2), -KEY (c3), KEY (c2, c3)) -ENGINE=InnoDB; -INSERT INTO t1 VALUES (1,1,1), (1,1,1), (1,1,2), (1,1,1), (1,1,2); -SELECT 1 FROM (SELECT COUNT(DISTINCT c1) -FROM t1 WHERE c2 IN (1, 1) AND c3 = 2 GROUP BY c2) x; -1 -1 -EXPLAIN -SELECT 1 FROM (SELECT COUNT(DISTINCT c1) -FROM t1 WHERE c2 IN (1, 1) AND c3 = 2 GROUP BY c2) x; -id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY <derived2> system NULL NULL NULL NULL 1 -2 DERIVED t1 index c3,c2 c2 14 NULL 5 -DROP TABLE t1; -End of 5.1 tests -drop table if exists t1, t2, t3; -create table t1(a int); -insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); -create table t2 (a int, b int, pk int, key(a,b), primary key(pk)) engine=innodb; -insert into t2 select @a:=A.a+10*(B.a + 10*C.a),@a, @a from t1 A, t1 B, t1 C; -this must use key 'a', not PRIMARY: -explain select a from t2 where a=b; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 index NULL a 10 NULL # Using where; Using index -drop table t1, t2; -SET SESSION BINLOG_FORMAT=STATEMENT; -SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; -select @@session.sql_log_bin, @@session.binlog_format, @@session.tx_isolation; -@@session.sql_log_bin 1 -@@session.binlog_format STATEMENT -@@session.tx_isolation READ-COMMITTED -CREATE TABLE t1 ( a INT ) ENGINE=InnoDB; -INSERT INTO t1 VALUES(1); -DROP TABLE t1; -DROP TABLE IF EXISTS t1; -CREATE TABLE t1 (a char(50)) ENGINE=InnoDB; -CREATE INDEX i1 on t1 (a(3)); -SELECT * FROM t1 WHERE a = 'abcde'; -a -DROP TABLE t1; -CREATE TABLE foo (a int, b int, c char(10), -PRIMARY KEY (c(3)), -KEY b (b) -) engine=innodb; -CREATE TABLE foo2 (a int, b int, c char(10), -PRIMARY KEY (c), -KEY b (b) -) engine=innodb; -CREATE TABLE bar (a int, b int, c char(10), -PRIMARY KEY (c(3)), -KEY b (b) -) engine=myisam; -INSERT INTO foo VALUES -(1,2,'abcdefghij'), (2,3,''), (3,4,'klmnopqrst'), -(4,5,'uvwxyz'), (5,6,'meotnsyglt'), (4,5,'asfdewe'); -INSERT INTO bar SELECT * FROM foo; -INSERT INTO foo2 SELECT * FROM foo; -EXPLAIN SELECT c FROM bar WHERE b>2;; -id 1 -select_type SIMPLE -table bar -type ALL -possible_keys b -key NULL -key_len NULL -ref NULL -rows 6 -Extra Using where -EXPLAIN SELECT c FROM foo WHERE b>2;; -id 1 -select_type SIMPLE -table foo -type ALL -possible_keys b -key NULL -key_len NULL -ref NULL -rows 6 -Extra Using where -EXPLAIN SELECT c FROM foo2 WHERE b>2;; -id 1 -select_type SIMPLE -table foo2 -type range -possible_keys b -key b -key_len 5 -ref NULL -rows 3 -Extra Using where; Using index -EXPLAIN SELECT c FROM bar WHERE c>2;; -id 1 -select_type SIMPLE -table bar -type ALL -possible_keys PRIMARY -key NULL -key_len NULL -ref NULL -rows 6 -Extra Using where -EXPLAIN SELECT c FROM foo WHERE c>2;; -id 1 -select_type SIMPLE -table foo -type ALL -possible_keys PRIMARY -key NULL -key_len NULL -ref NULL -rows 6 -Extra Using where -EXPLAIN SELECT c FROM foo2 WHERE c>2;; -id 1 -select_type SIMPLE -table foo2 -type index -possible_keys PRIMARY -key b -key_len 5 -ref NULL -rows 6 -Extra Using where; Using index -DROP TABLE foo, bar, foo2; -DROP TABLE IF EXISTS t1,t3,t2; -DROP FUNCTION IF EXISTS f1; -CREATE FUNCTION f1() RETURNS VARCHAR(250) -BEGIN -return 'hhhhhhh' ; -END| -CREATE TABLE t1 (a VARCHAR(20), b VARCHAR(20), c VARCHAR(20)) ENGINE=INNODB; -BEGIN WORK; -CREATE TEMPORARY TABLE t2 (a VARCHAR(20), b VARCHAR(20), c varchar(20)) ENGINE=INNODB; -CREATE TEMPORARY TABLE t3 LIKE t2; -INSERT INTO t1 VALUES ('a','b',NULL),('c','d',NULL),('e','f',NULL); -SET @stmt := CONCAT('INSERT INTO t2 SELECT tbl.a, tbl.b, f1()',' FROM t1 tbl'); -PREPARE stmt1 FROM @stmt; -SET @stmt := CONCAT('INSERT INTO t3', ' SELECT * FROM t2'); -PREPARE stmt3 FROM @stmt; -EXECUTE stmt1; -COMMIT; -DEALLOCATE PREPARE stmt1; -DEALLOCATE PREPARE stmt3; -DROP TABLE t1,t3,t2; -DROP FUNCTION f1; -DROP TABLE IF EXISTS t1,t2; -CREATE TABLE t1 (id INT NOT NULL, PRIMARY KEY (id)) ENGINE=INNODB; -CREATE TABLE t2 (id INT PRIMARY KEY, -t1_id INT, INDEX par_ind (t1_id), -FOREIGN KEY (t1_id) REFERENCES t1(id)) ENGINE=INNODB; -INSERT INTO t1 VALUES (1),(2); -INSERT INTO t2 VALUES (3,2); -SET AUTOCOMMIT = 0; -START TRANSACTION; -TRUNCATE TABLE t1; -ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`t1_id`) REFERENCES `t1` (`id`)) -SELECT * FROM t1; -id -1 -2 -COMMIT; -SELECT * FROM t1; -id -1 -2 -START TRANSACTION; -TRUNCATE TABLE t1; -ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`t1_id`) REFERENCES `t1` (`id`)) -SELECT * FROM t1; -id -1 -2 -ROLLBACK; -SELECT * FROM t1; -id -1 -2 -SET AUTOCOMMIT = 1; -START TRANSACTION; -SELECT * FROM t1; -id -1 -2 -COMMIT; -TRUNCATE TABLE t1; -ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`t1_id`) REFERENCES `t1` (`id`)) -SELECT * FROM t1; -id -1 -2 -DELETE FROM t2 WHERE id = 3; -START TRANSACTION; -SELECT * FROM t1; -id -1 -2 -TRUNCATE TABLE t1; -ROLLBACK; -SELECT * FROM t1; -id -TRUNCATE TABLE t2; -DROP TABLE t2; -DROP TABLE t1; -# -# Bug#40127 Multiple table DELETE IGNORE hangs on foreign key constraint violation on 5.0 -# -CREATE TABLE t1 ( -id INT UNSIGNED NOT NULL AUTO_INCREMENT, -PRIMARY KEY (id) -) ENGINE=InnoDB; -CREATE TABLE t2 ( -id INT UNSIGNED NOT NULL AUTO_INCREMENT, -aid INT UNSIGNED NOT NULL, -PRIMARY KEY (id), -FOREIGN KEY (aid) REFERENCES t1 (id) -) ENGINE=InnoDB; -CREATE TABLE t3 ( -bid INT UNSIGNED NOT NULL, -FOREIGN KEY (bid) REFERENCES t2 (id) -) ENGINE=InnoDB; -CREATE TABLE t4 ( -a INT -) ENGINE=InnoDB; -CREATE TABLE t5 ( -a INT -) ENGINE=InnoDB; -INSERT INTO t1 (id) VALUES (1); -INSERT INTO t2 (id, aid) VALUES (1, 1),(2,1),(3,1),(4,1); -INSERT INTO t3 (bid) VALUES (1); -INSERT INTO t4 VALUES (1),(2),(3),(4),(5); -INSERT INTO t5 VALUES (1); -DELETE t5 FROM t4 LEFT JOIN t5 ON t4.a= t5.a; -DELETE t2, t1 FROM t2 INNER JOIN t1 ON (t2.aid = t1.id) WHERE t2.id = 1; -ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t3`, CONSTRAINT `t3_ibfk_1` FOREIGN KEY (`bid`) REFERENCES `t2` (`id`)) -DELETE t2, t1 FROM t2 INNER JOIN t1 ON (t2.aid = t1.id) WHERE t2.id = 1; -ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t3`, CONSTRAINT `t3_ibfk_1` FOREIGN KEY (`bid`) REFERENCES `t2` (`id`)) -DELETE IGNORE t2, t1 FROM t2 INNER JOIN t1 ON (t2.aid = t1.id) WHERE t2.id = 1; -DROP TABLE t3; -DROP TABLE t2; -DROP TABLE t1; -DROP TABLES t4,t5; -# Bug#40127 Multiple table DELETE IGNORE hangs on foreign key constraint violation on 5.0 -# Testing for any side effects of IGNORE on AFTER DELETE triggers used with -# transactional tables. -# -CREATE TABLE t1 (i INT NOT NULL PRIMARY KEY) ENGINE=InnoDB; -CREATE TABLE t2 (a VARCHAR(100)) ENGINE=InnoDB; -CREATE TABLE t3 (i INT NOT NULL PRIMARY KEY) ENGINE=InnoDB; -CREATE TABLE t4 (i INT NOT NULL PRIMARY KEY, t1i INT, -FOREIGN KEY (t1i) REFERENCES t1(i)) -ENGINE=InnoDB; -CREATE TRIGGER trg AFTER DELETE ON t1 FOR EACH ROW -BEGIN -SET @b:='EXECUTED TRIGGER'; -INSERT INTO t2 VALUES (@b); -SET @a:= error_happens_here; -END|| -SET @b:=""; -SET @a:=""; -INSERT INTO t1 VALUES (1),(2),(3),(4); -INSERT INTO t3 SELECT * FROM t1; -** An error in a trigger causes rollback of the statement. -DELETE t1 FROM t3 LEFT JOIN t1 ON t1.i=t3.i; -ERROR 42S22: Unknown column 'error_happens_here' in 'field list' -SELECT @a,@b; -@a @b - EXECUTED TRIGGER -SELECT * FROM t2; -a -SELECT * FROM t1 LEFT JOIN t3 ON t1.i=t3.i; -i i -1 1 -2 2 -3 3 -4 4 -** Same happens with the IGNORE option -DELETE IGNORE t1 FROM t3 LEFT JOIN t1 ON t1.i=t3.i; -ERROR 42S22: Unknown column 'error_happens_here' in 'field list' -SELECT * FROM t2; -a -SELECT * FROM t1 LEFT JOIN t3 ON t1.i=t3.i; -i i -1 1 -2 2 -3 3 -4 4 -** -** The following is an attempt to demonstrate -** error handling inside a row iteration. -** -DROP TRIGGER trg; -TRUNCATE TABLE t1; -TRUNCATE TABLE t2; -TRUNCATE TABLE t3; -INSERT INTO t1 VALUES (1),(2),(3),(4); -INSERT INTO t3 VALUES (1),(2),(3),(4); -INSERT INTO t4 VALUES (3,3),(4,4); -CREATE TRIGGER trg AFTER DELETE ON t1 FOR EACH ROW -BEGIN -SET @b:= CONCAT('EXECUTED TRIGGER FOR ROW ',CAST(OLD.i AS CHAR)); -INSERT INTO t2 VALUES (@b); -END|| -** DELETE is prevented by foreign key constrains but errors are silenced. -** The AFTER trigger isn't fired. -DELETE IGNORE t1 FROM t3 LEFT JOIN t1 ON t1.i=t3.i; -** Tables are modified by best effort: -SELECT * FROM t1 LEFT JOIN t3 ON t1.i=t3.i; -i i -3 3 -4 4 -** The AFTER trigger was only executed on successful rows: -SELECT * FROM t2; -a -EXECUTED TRIGGER FOR ROW 1 -EXECUTED TRIGGER FOR ROW 2 -DROP TRIGGER trg; -** -** Induce an error midway through an AFTER-trigger -** -TRUNCATE TABLE t4; -TRUNCATE TABLE t1; -TRUNCATE TABLE t3; -INSERT INTO t1 VALUES (1),(2),(3),(4); -INSERT INTO t3 VALUES (1),(2),(3),(4); -CREATE TRIGGER trg AFTER DELETE ON t1 FOR EACH ROW -BEGIN -SET @a:= @a+1; -IF @a > 2 THEN -INSERT INTO t4 VALUES (5,5); -END IF; -END|| -SET @a:=0; -** Errors in the trigger causes the statement to abort. -DELETE IGNORE t1 FROM t3 LEFT JOIN t1 ON t1.i=t3.i; -ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test`.`t4`, CONSTRAINT `t4_ibfk_1` FOREIGN KEY (`t1i`) REFERENCES `t1` (`i`)) -SELECT * FROM t1 LEFT JOIN t3 ON t1.i=t3.i; -i i -1 1 -2 2 -3 3 -4 4 -SELECT * FROM t4; -i t1i -DROP TRIGGER trg; -DROP TABLE t4; -DROP TABLE t1; -DROP TABLE t2; -DROP TABLE t3; -CREATE TABLE t1 (a INT, b INT, KEY (a)) ENGINE = INNODB; -CREATE TABLE t2 (a INT KEY, b INT, KEY (b)) ENGINE = INNODB; -CREATE TABLE t3 (a INT, b INT KEY, KEY (a)) ENGINE = INNODB; -CREATE TABLE t4 (a INT KEY, b INT, KEY (b)) ENGINE = INNODB; -INSERT INTO t1 VALUES (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6); -INSERT INTO t2 VALUES (1, 1), (2, 2), (3, 3), (4, 4), (5, 5); -INSERT INTO t3 VALUES (1, 101), (2, 102), (3, 103), (4, 104), (5, 105), (6, 106); -INSERT INTO t4 VALUES (1, 1), (2, 2), (3, 3), (4, 4), (5, 5); -UPDATE t1, t2 SET t1.a = t1.a + 100, t2.b = t1.a + 10 -WHERE t1.a BETWEEN 2 AND 4 AND t2.a = t1.b; -SELECT * FROM t2; -a b -1 1 -2 12 -3 13 -4 14 -5 5 -UPDATE t3, t4 SET t3.a = t3.a + 100, t4.b = t3.a + 10 -WHERE t3.a BETWEEN 2 AND 4 AND t4.a = t3.b - 100; -SELECT * FROM t4; -a b -1 1 -2 12 -3 13 -4 14 -5 5 -DROP TABLE t1, t2, t3, t4; -# -# Bug#44886: SIGSEGV in test_if_skip_sort_order() - -# uninitialized variable used as subscript -# -CREATE TABLE t1 (a INT, b INT, c INT, d INT, PRIMARY KEY (b), KEY (a,c)) -ENGINE=InnoDB; -INSERT INTO t1 VALUES (1,1,1,0); -CREATE TABLE t2 (a INT, b INT, e INT, KEY (e)) ENGINE=InnoDB; -INSERT INTO t2 VALUES (1,1,2); -CREATE TABLE t3 (a INT, b INT) ENGINE=MyISAM; -INSERT INTO t3 VALUES (1, 1); -SELECT * FROM t1, t2, t3 -WHERE t1.a = t3.a AND (t1.b = t3.b OR t1.d) AND t2.b = t1.b AND t2.e = 2 -GROUP BY t1.b; -a b c d a b e a b -1 1 1 0 1 1 2 1 1 -DROP TABLE t1, t2, t3; -# -# Bug #45828: Optimizer won't use partial primary key if another -# index can prevent filesort -# -CREATE TABLE `t1` ( -c1 int NOT NULL, -c2 int NOT NULL, -c3 int NOT NULL, -PRIMARY KEY (c1,c2), -KEY (c3) -) ENGINE=InnoDB; -INSERT INTO t1 VALUES (5,2,1246276747); -INSERT INTO t1 VALUES (2,1,1246281721); -INSERT INTO t1 VALUES (7,3,1246281756); -INSERT INTO t1 VALUES (4,2,1246282139); -INSERT INTO t1 VALUES (3,1,1246282230); -INSERT INTO t1 VALUES (1,0,1246282712); -INSERT INTO t1 VALUES (8,3,1246282765); -INSERT INTO t1 SELECT c1+10,c2+10,c3+10 FROM t1; -INSERT INTO t1 SELECT c1+100,c2+100,c3+100 from t1; -INSERT INTO t1 SELECT c1+1000,c2+1000,c3+1000 from t1; -INSERT INTO t1 SELECT c1+10000,c2+10000,c3+10000 from t1; -INSERT INTO t1 SELECT c1+100000,c2+100000,c3+100000 from t1; -INSERT INTO t1 SELECT c1+1000000,c2+1000000,c3+1000000 from t1; -SELECT * FROM t1 WHERE c1 = 99999999 AND c3 > 1 ORDER BY c3; -c1 c2 c3 -EXPLAIN SELECT * FROM t1 WHERE c1 = 99999999 AND c3 > 1 ORDER BY c3; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 ref PRIMARY,c3 PRIMARY 4 const 1 Using where; Using filesort -EXPLAIN SELECT * FROM t1 FORCE INDEX (PRIMARY) WHERE c1 = 99999999 AND c3 > 1 ORDER BY c3; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 ref PRIMARY PRIMARY 4 const 1 Using where; Using filesort -CREATE TABLE t2 ( -c1 int NOT NULL, -c2 int NOT NULL, -c3 int NOT NULL, -KEY (c1,c2), -KEY (c3) -) ENGINE=InnoDB; -explain SELECT * FROM t2 WHERE c1 = 99999999 AND c3 > 1 ORDER BY c3; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 ref c1,c3 c1 4 const 1 Using where; Using filesort -DROP TABLE t1,t2; -# -# 36259: Optimizing with ORDER BY -# -CREATE TABLE t1 ( -a INT NOT NULL AUTO_INCREMENT, -b INT NOT NULL, -c INT NOT NULL, -d VARCHAR(5), -e INT NOT NULL, -PRIMARY KEY (a), KEY i2 (b,c,d) -) ENGINE=InnoDB; -INSERT INTO t1 (b,c,d,e) VALUES (1,1,'a',1), (2,2,'b',2); -INSERT INTO t1 (b,c,d,e) SELECT RAND()*10000, RAND()*10000, d, e FROM t1; -INSERT INTO t1 (b,c,d,e) SELECT RAND()*10000, RAND()*10000, d, e FROM t1; -INSERT INTO t1 (b,c,d,e) SELECT RAND()*10000, RAND()*10000, d, e FROM t1; -INSERT INTO t1 (b,c,d,e) SELECT RAND()*10000, RAND()*10000, d, e FROM t1; -INSERT INTO t1 (b,c,d,e) SELECT RAND()*10000, RAND()*10000, d, e FROM t1; -INSERT INTO t1 (b,c,d,e) SELECT RAND()*10000, RAND()*10000, d, e FROM t1; -EXPLAIN SELECT * FROM t1 WHERE b=1 AND c=1 ORDER BY a; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 ref i2 i2 8 const,const 1 Using where; Using filesort -EXPLAIN SELECT * FROM t1 FORCE INDEX(i2) WHERE b=1 and c=1 ORDER BY a; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 ref i2 i2 8 const,const 1 Using where; Using filesort -EXPLAIN SELECT * FROM t1 FORCE INDEX(PRIMARY) WHERE b=1 AND c=1 ORDER BY a; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index NULL PRIMARY 4 NULL 128 Using where -DROP TABLE t1; -# -# Bug #47963: Wrong results when index is used -# -CREATE TABLE t1( -a VARCHAR(5) NOT NULL, -b VARCHAR(5) NOT NULL, -c DATETIME NOT NULL, -KEY (c) -) ENGINE=InnoDB; -INSERT INTO t1 VALUES('TEST', 'TEST', '2009-10-09 00:00:00'); -SELECT * FROM t1 WHERE a = 'TEST' AND -c >= '2009-10-09 00:00:00' AND c <= '2009-10-09 00:00:00'; -a b c -TEST TEST 2009-10-09 00:00:00 -SELECT * FROM t1 WHERE a = 'TEST' AND -c >= '2009-10-09 00:00:00.0' AND c <= '2009-10-09 00:00:00.0'; -a b c -TEST TEST 2009-10-09 00:00:00 -SELECT * FROM t1 WHERE a = 'TEST' AND -c >= '2009-10-09 00:00:00.0' AND c <= '2009-10-09 00:00:00'; -a b c -TEST TEST 2009-10-09 00:00:00 -SELECT * FROM t1 WHERE a = 'TEST' AND -c >= '2009-10-09 00:00:00' AND c <= '2009-10-09 00:00:00.0'; -a b c -TEST TEST 2009-10-09 00:00:00 -SELECT * FROM t1 WHERE a = 'TEST' AND -c >= '2009-10-09 00:00:00.000' AND c <= '2009-10-09 00:00:00.000'; -a b c -TEST TEST 2009-10-09 00:00:00 -SELECT * FROM t1 WHERE a = 'TEST' AND -c >= '2009-10-09 00:00:00.00' AND c <= '2009-10-09 00:00:00.001'; -a b c -TEST TEST 2009-10-09 00:00:00 -SELECT * FROM t1 WHERE a = 'TEST' AND -c >= '2009-10-09 00:00:00.001' AND c <= '2009-10-09 00:00:00.00'; -a b c -EXPLAIN SELECT * FROM t1 WHERE a = 'TEST' AND -c >= '2009-10-09 00:00:00.001' AND c <= '2009-10-09 00:00:00.00'; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables -DROP TABLE t1; -# -# Bug #46175: NULL read_view and consistent read assertion -# -CREATE TABLE t1(a CHAR(13),KEY(a)) ENGINE=innodb; -CREATE TABLE t2(b DATETIME,KEY(b)) ENGINE=innodb; -INSERT INTO t1 VALUES (),(); -INSERT INTO t2 VALUES (),(); -CREATE OR REPLACE VIEW v1 AS SELECT 1 FROM t2 -WHERE b =(SELECT a FROM t1 LIMIT 1); -CREATE PROCEDURE p1(num INT) -BEGIN -DECLARE i INT DEFAULT 0; -REPEAT -SHOW CREATE VIEW v1; -SET i:=i+1; -UNTIL i>num END REPEAT; -END| -# Should not crash -# Should not crash -DROP PROCEDURE p1; -DROP VIEW v1; -DROP TABLE t1,t2; -# -# Bug #49324: more valgrind errors in test_if_skip_sort_order -# -CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=innodb ; -#should not cause valgrind warnings -SELECT 1 FROM t1 JOIN t1 a USING(a) GROUP BY t1.a,t1.a; -1 -DROP TABLE t1; -# -# Bug#50843: Filesort used instead of clustered index led to -# performance degradation. -# -create table t1(f1 int not null primary key, f2 int) engine=innodb; -create table t2(f1 int not null, key (f1)) engine=innodb; -insert into t1 values (1,1),(2,2),(3,3); -insert into t2 values (1),(2),(3); -explain select t1.* from t1 left join t2 using(f1) group by t1.f1; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index NULL PRIMARY 4 NULL 3 -1 SIMPLE t2 ref f1 f1 4 test.t1.f1 1 Using index -drop table t1,t2; -# -# -# Bug #39653: find_shortest_key in sql_select.cc does not consider -# clustered primary keys -# -CREATE TABLE t1 (a INT PRIMARY KEY, b INT, c INT, d INT, e INT, f INT, -KEY (b,c)) ENGINE=INNODB; -INSERT INTO t1 VALUES (1,1,1,1,1,1), (2,2,2,2,2,2), (3,3,3,3,3,3), -(4,4,4,4,4,4), (5,5,5,5,5,5), (6,6,6,6,6,6), -(7,7,7,7,7,7), (8,8,8,8,8,8), (9,9,9,9,9,9), -(11,11,11,11,11,11); -EXPLAIN SELECT COUNT(*) FROM t1; -id 1 -select_type SIMPLE -table t1 -type index -possible_keys NULL -key b -key_len 10 -ref NULL -rows 10 -Extra Using index -DROP TABLE t1; -# -# Bug #49838: DROP INDEX and ADD UNIQUE INDEX for same index may -# corrupt definition at engine -# -CREATE TABLE t1 (a INT NOT NULL, b INT NOT NULL, KEY k (a,b)) -ENGINE=InnoDB; -ALTER TABLE t1 DROP INDEX k, ADD UNIQUE INDEX k (a,b); -SHOW INDEXES FROM t1;; -Table t1 -Non_unique 0 -Key_name k -Seq_in_index 1 -Column_name a -Collation A -Cardinality 0 -Sub_part NULL -Packed NULL -Null -Index_type BTREE -Comment -Table t1 -Non_unique 0 -Key_name k -Seq_in_index 2 -Column_name b -Collation A -Cardinality 0 -Sub_part NULL -Packed NULL -Null -Index_type BTREE -Comment -DROP TABLE t1; -# -# Bug #47453: InnoDB incorrectly changes TIMESTAMP columns when -# JOINed during an UPDATE -# -CREATE TABLE t1 (d INT) ENGINE=InnoDB; -CREATE TABLE t2 (a INT, b INT, -c TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP -ON UPDATE CURRENT_TIMESTAMP) ENGINE=InnoDB; -set up our data elements -INSERT INTO t1 (d) VALUES (1); -INSERT INTO t2 (a,b) VALUES (1,1); -SELECT SECOND(c) INTO @bug47453 FROM t2; -SELECT SECOND(c)-@bug47453 FROM t1 JOIN t2 ON d=a; -SECOND(c)-@bug47453 -0 -UPDATE t1 JOIN t2 ON d=a SET b=1 WHERE a=1; -SELECT SECOND(c)-@bug47453 FROM t1 JOIN t2 ON d=a; -SECOND(c)-@bug47453 -0 -SELECT SLEEP(1); -SLEEP(1) -0 -UPDATE t1 JOIN t2 ON d=a SET b=1 WHERE a=1; -#should be 0 -SELECT SECOND(c)-@bug47453 FROM t1 JOIN t2 ON d=a; -SECOND(c)-@bug47453 -0 -DROP TABLE t1, t2; -# -# Bug #53334: wrong result for outer join with impossible ON condition -# (see the same test case for MyISAM in join.test) -# -CREATE TABLE t1 (id INT PRIMARY KEY); -CREATE TABLE t2 (id INT); -INSERT INTO t1 VALUES (75); -INSERT INTO t1 VALUES (79); -INSERT INTO t1 VALUES (78); -INSERT INTO t1 VALUES (77); -REPLACE INTO t1 VALUES (76); -REPLACE INTO t1 VALUES (76); -INSERT INTO t1 VALUES (104); -INSERT INTO t1 VALUES (103); -INSERT INTO t1 VALUES (102); -INSERT INTO t1 VALUES (101); -INSERT INTO t1 VALUES (105); -INSERT INTO t1 VALUES (106); -INSERT INTO t1 VALUES (107); -INSERT INTO t2 VALUES (107),(75),(1000); -SELECT t1.id,t2.id FROM t2 LEFT JOIN t1 ON t1.id>=74 AND t1.id<=0 -WHERE t2.id=75 AND t1.id IS NULL; -id id -NULL 75 -EXPLAIN SELECT t1.id,t2.id FROM t2 LEFT JOIN t1 ON t1.id>=74 AND t1.id<=0 -WHERE t2.id=75 AND t1.id IS NULL; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 const PRIMARY NULL NULL NULL 1 Impossible ON condition -1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where -DROP TABLE t1,t2; -# -# Bug #53830: !table || (!table->read_set || bitmap_is_set(table->read_set, field_index)) -# -CREATE TABLE t1 (a INT, b INT, c INT, d INT, -PRIMARY KEY(a,b,c), KEY(b,d)) -ENGINE=InnoDB; -INSERT INTO t1 VALUES (0, 77, 1, 3); -UPDATE t1 SET d = 0 WHERE b = 77 AND c = 25; -DROP TABLE t1; -End of 5.1 tests diff --git a/mysql-test/r/innodb_mysql_rbk.result b/mysql-test/r/innodb_mysql_rbk.result deleted file mode 100644 index 21ac4295325..00000000000 --- a/mysql-test/r/innodb_mysql_rbk.result +++ /dev/null @@ -1,21 +0,0 @@ -CREATE TABLE t1(a INT, b INT NOT NULL, PRIMARY KEY (a)) ENGINE=innodb -DEFAULT CHARSET=latin1; -INSERT INTO t1 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7); -START TRANSACTION; -SELECT * FROM t1 WHERE b=3 LIMIT 1 FOR UPDATE; -a b -3 3 -START TRANSACTION; -UPDATE t1 SET b=b+12 WHERE a > 2 ORDER BY a; -ERROR HY000: Lock wait timeout exceeded; try restarting transaction -ROLLBACK; -START TRANSACTION; -SELECT * FROM t1 WHERE b=3 LIMIT 1 FOR UPDATE; -a b -3 3 -START TRANSACTION; -UPDATE t1 SET b=10 WHERE a > 1 ORDER BY a; -ERROR HY000: Lock wait timeout exceeded; try restarting transaction -SELECT * FROM t1 WHERE b = 10; -a b -DROP TABLE t1; diff --git a/mysql-test/r/innodb_notembedded.result b/mysql-test/r/innodb_notembedded.result deleted file mode 100644 index af332aba38a..00000000000 --- a/mysql-test/r/innodb_notembedded.result +++ /dev/null @@ -1,23 +0,0 @@ -drop table if exists t1; -SET @old_log_bin_trust_function_creators= @@global.log_bin_trust_function_creators; -SET GLOBAL log_bin_trust_function_creators = 1; -create table t1 (col1 integer primary key, col2 integer) engine=innodb; -insert t1 values (1,100); -create function f1 () returns integer begin -declare var1 int; -select col2 into var1 from t1 where col1=1 for update; -return var1; -end| -start transaction; -select f1(); -f1() -100 -update t1 set col2=0 where col1=1; -select * from t1; -col1 col2 -1 100 -rollback; -rollback; -drop table t1; -drop function f1; -SET @@global.log_bin_trust_function_creators= @old_log_bin_trust_function_creators; diff --git a/mysql-test/r/innodb_timeout_rollback.result b/mysql-test/r/innodb_timeout_rollback.result deleted file mode 100644 index e2da6ba8af7..00000000000 --- a/mysql-test/r/innodb_timeout_rollback.result +++ /dev/null @@ -1,36 +0,0 @@ -drop table if exists t1; -show variables like 'innodb_rollback_on_timeout'; -Variable_name Value -innodb_rollback_on_timeout ON -create table t1 (a int unsigned not null primary key) engine = innodb; -insert into t1 values (1); -commit; -begin work; -insert into t1 values (2); -select * from t1; -a -1 -2 -begin work; -insert into t1 values (5); -select * from t1; -a -1 -5 -insert into t1 values (2); -ERROR HY000: Lock wait timeout exceeded; try restarting transaction -select * from t1; -a -1 -commit; -select * from t1; -a -1 -2 -commit; -select * from t1; -a -1 -2 -drop table t1; -End of 5.0 tests diff --git a/mysql-test/r/loaddata.result b/mysql-test/r/loaddata.result index b3487d376a1..665e80b8ba2 100644 --- a/mysql-test/r/loaddata.result +++ b/mysql-test/r/loaddata.result @@ -496,4 +496,11 @@ SELECT * FROM t1; col0 test DROP TABLE t1; +# +# Bug #52512 : Assertion `! is_set()' in +# Diagnostics_area::set_ok_status on LOAD DATA +# +CREATE TABLE t1 (id INT NOT NULL); +LOAD DATA LOCAL INFILE 'tb.txt' INTO TABLE t1; +DROP TABLE t1; End of 5.1 tests diff --git a/mysql-test/r/mysqlhotcopy_archive.result b/mysql-test/r/mysqlhotcopy_archive.result new file mode 100644 index 00000000000..bea78597336 --- /dev/null +++ b/mysql-test/r/mysqlhotcopy_archive.result @@ -0,0 +1,118 @@ +DROP DATABASE IF EXISTS hotcopy_test; +CREATE DATABASE hotcopy_test; +USE hotcopy_test; +CREATE TABLE t1 (c1 int, c2 varchar(20)) ENGINE=archive; +CREATE TABLE t2 (c1 int, c2 varchar(20)) ENGINE=archive; +CREATE TABLE t3 (c1 int, c2 varchar(20)) ENGINE=archive; +INSERT INTO t1 VALUES (1,'aaaaaaaaaaaaaaaaaaaa'),(2, 'bbbbbbbbbbbbbbbbbbbbbbb'); +Warnings: +Warning 1265 Data truncated for column 'c2' at row 2 +INSERT INTO t2 VALUES (1,'aaaaaaaaaaaaaaaaaaaa'),(2, 'bbbbbbbbbbbbbbbbbbbbbbb'); +Warnings: +Warning 1265 Data truncated for column 'c2' at row 2 +INSERT INTO t3 VALUES (1,'aaaaaaaaaaaaaaaaaaaa'),(2, 'bbbbbbbbbbbbbbbbbbbbbbb'); +Warnings: +Warning 1265 Data truncated for column 'c2' at row 2 +db.opt +t1.ARZ +t1.frm +t2.ARZ +t2.frm +t3.ARZ +t3.frm +db.opt +t1.ARZ +t1.frm +t2.ARZ +t2.frm +t3.ARZ +t3.frm +USE hotcopy_save; +SELECT * FROM t1; +c1 c2 +1 aaaaaaaaaaaaaaaaaaaa +2 bbbbbbbbbbbbbbbbbbbb +SELECT * FROM t2; +c1 c2 +1 aaaaaaaaaaaaaaaaaaaa +2 bbbbbbbbbbbbbbbbbbbb +SELECT * FROM t3; +c1 c2 +1 aaaaaaaaaaaaaaaaaaaa +2 bbbbbbbbbbbbbbbbbbbb +USE hotcopy_test; +DROP TABLE t2; +db.opt +t1.ARZ +t1.frm +t3.ARZ +t3.frm +FLUSH TABLES; +SELECT * FROM t1; +c1 c2 +1 aaaaaaaaaaaaaaaaaaaa +2 bbbbbbbbbbbbbbbbbbbb +SELECT * FROM t2; +c1 c2 +1 aaaaaaaaaaaaaaaaaaaa +2 bbbbbbbbbbbbbbbbbbbb +SELECT * FROM t3; +c1 c2 +1 aaaaaaaaaaaaaaaaaaaa +2 bbbbbbbbbbbbbbbbbbbb +USE hotcopy_test; +db.opt +t1.ARZ +t1.frm +t2.ARZ +t2.frm +t3.ARZ +t3.frm +DROP DATABASE hotcopy_save; +db.opt +t1.ARZ +t1.frm +t2.ARZ +t2.frm +t3.ARZ +t3.frm +DROP DATABASE hotcopy_save; +db.opt +t1.ARZ +t1.frm +t2.ARZ +t2.frm +t3.ARZ +t3.frm +db.opt +t1.ARZ +t1.frm +t2.ARZ +t2.frm +t3.ARZ +t3.frm +db.opt +t1.ARZ +t1.frm +t2.ARZ +t2.frm +t3.ARZ +t3.frm +db.opt +t1.ARZ +t1.frm +t2.ARZ +t2.frm +t3.ARZ +t3.frm +db.opt +t1.ARZ +t1.frm +t2.ARZ +t2.frm +t3.ARZ +t3.frm +DROP DATABASE hotcopy_test_cpy; +DROP DATABASE hotcopy_test; +DROP DATABASE hotcopy_save; +DROP DATABASE hotcopy_save_old; diff --git a/mysql-test/r/mysqlhotcopy_myisam.result b/mysql-test/r/mysqlhotcopy_myisam.result new file mode 100644 index 00000000000..52aeffce5cf --- /dev/null +++ b/mysql-test/r/mysqlhotcopy_myisam.result @@ -0,0 +1,164 @@ +DROP DATABASE IF EXISTS hotcopy_test; +CREATE DATABASE hotcopy_test; +USE hotcopy_test; +CREATE TABLE t1 (c1 int, c2 varchar(20)) ENGINE=MyISAM; +CREATE TABLE t2 (c1 int, c2 varchar(20)) ENGINE=MyISAM; +CREATE TABLE t3 (c1 int, c2 varchar(20)) ENGINE=MyISAM; +INSERT INTO t1 VALUES (1,'aaaaaaaaaaaaaaaaaaaa'),(2, 'bbbbbbbbbbbbbbbbbbbbbbb'); +Warnings: +Warning 1265 Data truncated for column 'c2' at row 2 +INSERT INTO t2 VALUES (1,'aaaaaaaaaaaaaaaaaaaa'),(2, 'bbbbbbbbbbbbbbbbbbbbbbb'); +Warnings: +Warning 1265 Data truncated for column 'c2' at row 2 +INSERT INTO t3 VALUES (1,'aaaaaaaaaaaaaaaaaaaa'),(2, 'bbbbbbbbbbbbbbbbbbbbbbb'); +Warnings: +Warning 1265 Data truncated for column 'c2' at row 2 +db.opt +t1.MYD +t1.MYI +t1.frm +t2.MYD +t2.MYI +t2.frm +t3.MYD +t3.MYI +t3.frm +db.opt +t1.MYD +t1.MYI +t1.frm +t2.MYD +t2.MYI +t2.frm +t3.MYD +t3.MYI +t3.frm +USE hotcopy_save; +SELECT * FROM t1; +c1 c2 +1 aaaaaaaaaaaaaaaaaaaa +2 bbbbbbbbbbbbbbbbbbbb +SELECT * FROM t2; +c1 c2 +1 aaaaaaaaaaaaaaaaaaaa +2 bbbbbbbbbbbbbbbbbbbb +SELECT * FROM t3; +c1 c2 +1 aaaaaaaaaaaaaaaaaaaa +2 bbbbbbbbbbbbbbbbbbbb +USE hotcopy_test; +DELETE FROM t1; +SELECT * FROM t1; +c1 c2 +USE hotcopy_save; +SELECT * FROM t1; +c1 c2 +1 aaaaaaaaaaaaaaaaaaaa +2 bbbbbbbbbbbbbbbbbbbb +SELECT * FROM t2; +c1 c2 +1 aaaaaaaaaaaaaaaaaaaa +2 bbbbbbbbbbbbbbbbbbbb +SELECT * FROM t3; +c1 c2 +1 aaaaaaaaaaaaaaaaaaaa +2 bbbbbbbbbbbbbbbbbbbb +USE hotcopy_test; +DROP TABLE t2; +db.opt +t1.MYD +t1.MYI +t1.frm +t3.MYD +t3.MYI +t3.frm +FLUSH TABLES; +SELECT * FROM t1; +c1 c2 +1 aaaaaaaaaaaaaaaaaaaa +2 bbbbbbbbbbbbbbbbbbbb +SELECT * FROM t2; +c1 c2 +1 aaaaaaaaaaaaaaaaaaaa +2 bbbbbbbbbbbbbbbbbbbb +SELECT * FROM t3; +c1 c2 +1 aaaaaaaaaaaaaaaaaaaa +2 bbbbbbbbbbbbbbbbbbbb +USE hotcopy_test; +db.opt +t1.MYD +t1.MYI +t1.frm +t2.MYD +t2.MYI +t2.frm +t3.MYD +t3.MYI +t3.frm +DROP DATABASE hotcopy_save; +db.opt +t1.MYD +t1.MYI +t1.frm +t2.MYD +t2.MYI +t2.frm +t3.MYD +t3.MYI +t3.frm +DROP DATABASE hotcopy_save; +db.opt +t1.MYD +t1.MYI +t1.frm +t2.MYD +t2.MYI +t2.frm +t3.MYD +t3.MYI +t3.frm +db.opt +t1.MYD +t1.MYI +t1.frm +t2.MYD +t2.MYI +t2.frm +t3.MYD +t3.MYI +t3.frm +db.opt +t1.MYD +t1.MYI +t1.frm +t2.MYD +t2.MYI +t2.frm +t3.MYD +t3.MYI +t3.frm +db.opt +t1.MYD +t1.MYI +t1.frm +t2.MYD +t2.MYI +t2.frm +t3.MYD +t3.MYI +t3.frm +db.opt +t1.MYD +t1.MYI +t1.frm +t2.MYD +t2.MYI +t2.frm +t3.MYD +t3.MYI +t3.frm +DROP DATABASE hotcopy_test_cpy; +DROP DATABASE hotcopy_test; +DROP DATABASE hotcopy_save; +DROP DATABASE hotcopy_save_old; diff --git a/mysql-test/r/schema.result b/mysql-test/r/schema.result index 564fb3626df..e6af4e312a3 100644 --- a/mysql-test/r/schema.result +++ b/mysql-test/r/schema.result @@ -11,3 +11,22 @@ mtr mysql test drop schema foo; +# +# Bug#54360 Deadlock DROP/ALTER/CREATE DATABASE with open HANDLER +# +CREATE DATABASE db1; +CREATE TABLE db1.t1 (a INT); +INSERT INTO db1.t1 VALUES (1), (2); +# Connection con1 +HANDLER db1.t1 OPEN; +# Connection default +# Sending: +DROP DATABASE db1; +# Connection con2 +# Waiting for 'DROP DATABASE db1' to sync in. +# Connection con1 +CREATE DATABASE db2; +ALTER DATABASE db2 DEFAULT CHARACTER SET utf8; +DROP DATABASE db2; +# Connection default +# Reaping: DROP DATABASE db1 diff --git a/mysql-test/r/select.result b/mysql-test/r/select.result index fb4175ed5ca..fb3de514f62 100644 --- a/mysql-test/r/select.result +++ b/mysql-test/r/select.result @@ -4782,4 +4782,19 @@ a b c SELECT * FROM t1 WHERE 102 < c; a b c DROP TABLE t1; +# +# Bug #54459: Assertion failed: param.sort_length, +# file .\filesort.cc, line 149 (part II) +# +CREATE TABLE t1(a ENUM('') NOT NULL); +INSERT INTO t1 VALUES (), (), (); +EXPLAIN SELECT 1 FROM t1 ORDER BY a COLLATE latin1_german2_ci; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 +SELECT 1 FROM t1 ORDER BY a COLLATE latin1_german2_ci; +1 +1 +1 +1 +DROP TABLE t1; End of 5.1 tests diff --git a/mysql-test/r/subselect.result b/mysql-test/r/subselect.result index d767e741c4d..47a89897daf 100644 --- a/mysql-test/r/subselect.result +++ b/mysql-test/r/subselect.result @@ -4717,3 +4717,20 @@ t1_id total_amount DROP TABLE t3; DROP TABLE t2; DROP TABLE t1; +# +# Bug #52711: Segfault when doing EXPLAIN SELECT with +# union...order by (select... where...) +# +CREATE TABLE t1 (a VARCHAR(10), FULLTEXT KEY a (a)); +INSERT INTO t1 VALUES (1),(2); +CREATE TABLE t2 (b INT); +INSERT INTO t2 VALUES (1),(2); +# Should not crash +EXPLAIN +SELECT * FROM t2 UNION SELECT * FROM t2 +ORDER BY (SELECT * FROM t1 WHERE MATCH(a) AGAINST ('+abc' IN BOOLEAN MODE)); +# Should not crash +SELECT * FROM t2 UNION SELECT * FROM t2 +ORDER BY (SELECT * FROM t1 WHERE MATCH(a) AGAINST ('+abc' IN BOOLEAN MODE)); +DROP TABLE t1,t2; +End of 5.1 tests diff --git a/mysql-test/r/variables.result b/mysql-test/r/variables.result index 94a7661d327..a297dbfa502 100644 --- a/mysql-test/r/variables.result +++ b/mysql-test/r/variables.result @@ -1026,6 +1026,13 @@ hostname # # Test 'myisam_mmap_size' option is not dynamic SET @@myisam_mmap_size= 500M; ERROR HY000: Variable 'myisam_mmap_size' is a read only variable +# +# Bug #52315: utc_date() crashes when system time > year 2037 +# +SET TIMESTAMP=2*1024*1024*1024; +#Should not crash +SELECT UTC_DATE(); +SET TIMESTAMP=DEFAULT; End of 5.0 tests set join_buffer_size=1; Warnings: |