diff options
author | unknown <serg@janus.mylan> | 2007-12-20 22:11:37 +0100 |
---|---|---|
committer | unknown <serg@janus.mylan> | 2007-12-20 22:11:37 +0100 |
commit | 295732b580716b6b5a48a4a2ceb112b432c96551 (patch) | |
tree | 8e1c37da4cf89e91d901badb1c2e5f100be39ec1 /mysql-test/r | |
parent | 3ab83a2e5efdb64b068243d11b6230ae5b11df29 (diff) | |
parent | 9bf488563d948ddc86ccef87ddaebc7d15afe1a4 (diff) | |
download | mariadb-git-295732b580716b6b5a48a4a2ceb112b432c96551.tar.gz |
Merge bk-internal.mysql.com:/home/bk/mysql-5.1-maint
into janus.mylan:/usr/home/serg/Abk/mysql-5.1
configure.in:
Auto merged
libmysql/CMakeLists.txt:
Auto merged
libmysqld/lib_sql.cc:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/information_schema.result:
Auto merged
mysql-test/t/information_schema.test:
Auto merged
sql/Makefile.am:
Auto merged
sql/field.cc:
Auto merged
sql/handler.cc:
Auto merged
sql/item.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_geofunc.cc:
Auto merged
sql/item_subselect.cc:
Auto merged
sql/key.cc:
Auto merged
sql/lock.cc:
Auto merged
sql/log.cc:
Auto merged
sql/log_event.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/net_serv.cc:
Auto merged
sql/opt_sum.cc:
Auto merged
sql/protocol.h:
Auto merged
sql/repl_failsafe.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/set_var.h:
Auto merged
sql/sp_head.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_cache.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_delete.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_prepare.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_select.h:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_update.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/table.h:
Auto merged
storage/archive/ha_archive.cc:
Auto merged
storage/innobase/buf/buf0buf.c:
Auto merged
storage/innobase/buf/buf0flu.c:
Auto merged
storage/innobase/buf/buf0lru.c:
Auto merged
storage/innobase/include/buf0buf.h:
Auto merged
storage/innobase/include/buf0buf.ic:
Auto merged
storage/innobase/include/sync0arr.h:
Auto merged
storage/innobase/include/sync0rw.h:
Auto merged
storage/innobase/include/sync0rw.ic:
Auto merged
storage/innobase/include/sync0sync.h:
Auto merged
storage/innobase/os/os0sync.c:
Auto merged
storage/innobase/sync/sync0arr.c:
Auto merged
storage/innobase/sync/sync0rw.c:
Auto merged
storage/innobase/sync/sync0sync.c:
Auto merged
storage/myisam/ha_myisam.cc:
Auto merged
storage/myisam/mi_open.c:
Auto merged
storage/myisammrg/ha_myisammrg.cc:
Auto merged
sql/ha_ndbcluster.cc:
merged
sql/item_cmpfunc.cc:
merged
sql/protocol.cc:
merged
sql/slave.cc:
merged
sql/sql_class.h:
merged
sql/sql_parse.cc:
merged
Diffstat (limited to 'mysql-test/r')
60 files changed, 3581 insertions, 76 deletions
diff --git a/mysql-test/r/archive.result b/mysql-test/r/archive.result index edd49988a5f..e9eb50fc805 100644 --- a/mysql-test/r/archive.result +++ b/mysql-test/r/archive.result @@ -12665,7 +12665,7 @@ t6 CREATE TABLE `t6` ( `b` tinyblob, `c` int(11) DEFAULT NULL, KEY `a` (`a`) -) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 +) ENGINE=ARCHIVE AUTO_INCREMENT=36 DEFAULT CHARSET=latin1 DROP TABLE t1, t2, t4, t5, t6; create table t1 (i int) engine=archive; insert into t1 values (1); @@ -12687,3 +12687,10 @@ CREATE TABLE t1(a VARCHAR(510)) ENGINE = ARCHIVE; INSERT INTO t1(a) VALUES (''); SELECT * FROM t1 ORDER BY a; DROP TABLE t1; +CREATE TABLE t1(a INT NOT NULL AUTO_INCREMENT, b BLOB, KEY(a)) ENGINE=archive; +INSERT INTO t1 VALUES (NULL, NULL),(NULL, NULL); +FLUSH TABLE t1; +SELECT * FROM t1 ORDER BY a; +a b +1 NULL +2 NULL diff --git a/mysql-test/r/change_user.result b/mysql-test/r/change_user.result index cb409621d56..28b55dfd5e5 100644 --- a/mysql-test/r/change_user.result +++ b/mysql-test/r/change_user.result @@ -4,14 +4,14 @@ SELECT @@session.sql_big_selects; 1 SELECT @@global.max_join_size; @@global.max_join_size --1 +18446744073709551615 change_user SELECT @@session.sql_big_selects; @@session.sql_big_selects 1 SELECT @@global.max_join_size; @@global.max_join_size --1 +18446744073709551615 SET @@global.max_join_size = 10000; SET @@session.max_join_size = default; change_user diff --git a/mysql-test/r/create.result b/mysql-test/r/create.result index 73a9dba4e69..0613c9ba488 100644 --- a/mysql-test/r/create.result +++ b/mysql-test/r/create.result @@ -1705,4 +1705,42 @@ create table t1 as select 1; create table t2 as select f1() from t1; drop table t1,t2; drop function f1; +create table t1 like information_schema.processlist; +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `ID` bigint(4) NOT NULL DEFAULT '0', + `USER` varchar(16) NOT NULL DEFAULT '', + `HOST` varchar(64) NOT NULL DEFAULT '', + `DB` varchar(64) DEFAULT NULL, + `COMMAND` varchar(16) NOT NULL DEFAULT '', + `TIME` bigint(7) NOT NULL DEFAULT '0', + `STATE` varchar(64) DEFAULT NULL, + `INFO` longtext +) ENGINE=MyISAM DEFAULT CHARSET=utf8 +drop table t1; +create temporary table t1 like information_schema.processlist; +show create table t1; +Table Create Table +t1 CREATE TEMPORARY TABLE `t1` ( + `ID` bigint(4) NOT NULL DEFAULT '0', + `USER` varchar(16) NOT NULL DEFAULT '', + `HOST` varchar(64) NOT NULL DEFAULT '', + `DB` varchar(64) DEFAULT NULL, + `COMMAND` varchar(16) NOT NULL DEFAULT '', + `TIME` bigint(7) NOT NULL DEFAULT '0', + `STATE` varchar(64) DEFAULT NULL, + `INFO` longtext +) ENGINE=MyISAM DEFAULT CHARSET=utf8 +drop table t1; +create table t1 like information_schema.character_sets; +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `CHARACTER_SET_NAME` varchar(64) NOT NULL DEFAULT '', + `DEFAULT_COLLATE_NAME` varchar(64) NOT NULL DEFAULT '', + `DESCRIPTION` varchar(60) NOT NULL DEFAULT '', + `MAXLEN` bigint(3) NOT NULL DEFAULT '0' +) ENGINE=MEMORY DEFAULT CHARSET=utf8 +drop table t1; End of 5.1 tests diff --git a/mysql-test/r/csv.result b/mysql-test/r/csv.result index 69f77dc3cd8..b0033383f00 100644 --- a/mysql-test/r/csv.result +++ b/mysql-test/r/csv.result @@ -5364,13 +5364,19 @@ BIN(a) 0 drop table t1; create table t1(a enum('foo','bar') default null) engine=csv; -ERROR HY000: Can't create table 'test.t1' (errno: -1) +ERROR 42000: The storage engine for the table doesn't support nullable columns create table t1(a enum('foo','bar') default 'foo') engine=csv; -ERROR HY000: Can't create table 'test.t1' (errno: -1) +ERROR 42000: The storage engine for the table doesn't support nullable columns create table t1(a enum('foo','bar') default 'foo' not null) engine=csv; insert into t1 values(); select * from t1; a foo drop table t1; +CREATE TABLE t1(a INT) ENGINE=CSV; +ERROR 42000: The storage engine for the table doesn't support nullable columns +SHOW WARNINGS; +Level Code Message +Error 1178 The storage engine for the table doesn't support nullable columns +Error 1005 Can't create table 'test.t1' (errno: 138) End of 5.1 tests diff --git a/mysql-test/r/ctype_big5.result b/mysql-test/r/ctype_big5.result index b190273cc64..8103e9b856f 100644 --- a/mysql-test/r/ctype_big5.result +++ b/mysql-test/r/ctype_big5.result @@ -64,6 +64,10 @@ select a sounds like a from t1; a sounds like a 1 1 +select 1 from t1 order by cast(a as char(1)); +1 +1 +1 drop table t1; DROP DATABASE d1; USE test; diff --git a/mysql-test/r/ctype_euckr.result b/mysql-test/r/ctype_euckr.result index ee786202c01..bb1b3f5995b 100644 --- a/mysql-test/r/ctype_euckr.result +++ b/mysql-test/r/ctype_euckr.result @@ -64,6 +64,10 @@ select a sounds like a from t1; a sounds like a 1 1 +select 1 from t1 order by cast(a as char(1)); +1 +1 +1 drop table t1; DROP DATABASE d1; USE test; diff --git a/mysql-test/r/ctype_gb2312.result b/mysql-test/r/ctype_gb2312.result index 90c94c3b299..95246525368 100644 --- a/mysql-test/r/ctype_gb2312.result +++ b/mysql-test/r/ctype_gb2312.result @@ -64,6 +64,10 @@ select a sounds like a from t1; a sounds like a 1 1 +select 1 from t1 order by cast(a as char(1)); +1 +1 +1 drop table t1; DROP DATABASE d1; USE test; diff --git a/mysql-test/r/ctype_gbk.result b/mysql-test/r/ctype_gbk.result index fe90c7bff29..8437e34be1e 100644 --- a/mysql-test/r/ctype_gbk.result +++ b/mysql-test/r/ctype_gbk.result @@ -64,6 +64,10 @@ select a sounds like a from t1; a sounds like a 1 1 +select 1 from t1 order by cast(a as char(1)); +1 +1 +1 drop table t1; DROP DATABASE d1; USE test; diff --git a/mysql-test/r/ctype_uca.result b/mysql-test/r/ctype_uca.result index 3fff9b9cda8..92b76802d0b 100644 --- a/mysql-test/r/ctype_uca.result +++ b/mysql-test/r/ctype_uca.result @@ -2599,6 +2599,10 @@ select a sounds like a from t1; a sounds like a 1 1 +select 1 from t1 order by cast(a as char(1)); +1 +1 +1 drop table t1; DROP DATABASE d1; USE test; diff --git a/mysql-test/r/delayed.result b/mysql-test/r/delayed.result index 95f7fe5aa61..bcda6ddb6ab 100644 --- a/mysql-test/r/delayed.result +++ b/mysql-test/r/delayed.result @@ -250,6 +250,11 @@ SELECT HEX(a) FROM t1; HEX(a) 1 DROP TABLE t1; +CREATE TABLE t1 (a INT); +INSERT DELAYED INTO t1 SET b= b(); +ERROR 42S22: Unknown column 'b' in 'field list' +DROP TABLE t1; +End of 5.0 tests DROP TABLE IF EXISTS t1,t2; SET SQL_MODE='NO_AUTO_VALUE_ON_ZERO'; CREATE TABLE `t1` ( @@ -279,3 +284,4 @@ ERROR 22007: Incorrect date value: '0000-00-00' for column 'f1' at row 1 INSERT DELAYED INTO t2 VALUES (0,'2007-00-00'); ERROR 22007: Incorrect date value: '2007-00-00' for column 'f1' at row 1 DROP TABLE t1,t2; +End of 5.1 tests diff --git a/mysql-test/r/drop.result b/mysql-test/r/drop.result index ff11905aa34..71d6fcc7cd0 100644 --- a/mysql-test/r/drop.result +++ b/mysql-test/r/drop.result @@ -85,3 +85,10 @@ select 1; 1 unlock tables; End of 5.0 tests +create database mysql_test; +create table mysql_test.t1(f1 int); +create table mysql_test.`#sql-347f_7` (f1 int); +create table mysql_test.`#sql-347f_8` (f1 int); +drop table mysql_test.`#sql-347f_8`; +drop database mysql_test; +End of 5.1 tests diff --git a/mysql-test/r/events.result b/mysql-test/r/events.result index d1ee6d1c5a1..7b68914e219 100644 --- a/mysql-test/r/events.result +++ b/mysql-test/r/events.result @@ -403,9 +403,10 @@ ERROR 42S02: Table 'mysql.event' doesn't exist DROP DATABASE IF EXISTS mysqltest_no_such_database; Warnings: Note 1008 Can't drop database 'mysqltest_no_such_database'; database doesn't exist -Error 1146 Table 'mysql.event' doesn't exist CREATE DATABASE mysqltest_db2; DROP DATABASE mysqltest_db2; +Warnings: +Error 1146 Table 'mysql.event' doesn't exist OK, there is an unnecessary warning about the non-existent table but it's not easy to fix and no one complained about it. A similar warning is printed if mysql.proc is missing. diff --git a/mysql-test/r/events_scheduling.result b/mysql-test/r/events_scheduling.result index d45bffcd7ff..033136ba354 100644 --- a/mysql-test/r/events_scheduling.result +++ b/mysql-test/r/events_scheduling.result @@ -78,10 +78,10 @@ FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_SCHEMA=DATABASE() AND EVENT_NAME='event_2'; IF(TIME_TO_SEC(TIMEDIFF(ENDS,STARTS))=6, 'OK', 'ERROR') OK -SELECT IF(LAST_EXECUTED-ENDS < 3, 'OK', 'ERROR') +SELECT IF(LAST_EXECUTED-ENDS <= 0, 'OK', 'ERROR') FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_SCHEMA=DATABASE() AND EVENT_NAME='event_2'; -IF(LAST_EXECUTED-ENDS < 3, 'OK', 'ERROR') +IF(LAST_EXECUTED-ENDS <= 0, 'OK', 'ERROR') OK "Already dropped because ended. Therefore an error." DROP EVENT event_3; diff --git a/mysql-test/r/explain.result b/mysql-test/r/explain.result index 6f348447fbb..2ce8b8c384f 100644 --- a/mysql-test/r/explain.result +++ b/mysql-test/r/explain.result @@ -87,3 +87,23 @@ Warnings: Note 1003 select '1' AS `f1`,'1' AS `f2` from `test`.`t1` having 1 drop view v1; drop table t1; +CREATE TABLE t1(c INT); +INSERT INTO t1 VALUES (),(); +CREATE TABLE t2 (b INT, +KEY(b),KEY(b),KEY(b),KEY(b),KEY(b), +KEY(b),KEY(b),KEY(b),KEY(b),KEY(b), +KEY(b),KEY(b),KEY(b),KEY(b),KEY(b), +KEY(b),KEY(b),KEY(b),KEY(b),KEY(b), +KEY(b),KEY(b),KEY(b),KEY(b),KEY(b), +KEY(b),KEY(b),KEY(b),KEY(b),KEY(b), +KEY(b),KEY(b),KEY(b),KEY(b),KEY(b), +KEY(b),KEY(b),KEY(b),KEY(b),KEY(b)); +INSERT INTO t2 VALUES (),(),(); +EXPLAIN SELECT 1 FROM +(SELECT 1 FROM t2,t1 WHERE b < c GROUP BY 1 LIMIT 1) AS d2; +id select_type table type possible_keys key key_len ref rows Extra +X X X X X X X X X const row not found +X X X X X X X X X +X X X X X X X X X Range checked for each record (index map: 0xFFFFFFFFFF) +DROP TABLE t2; +DROP TABLE t1; diff --git a/mysql-test/r/federated.result b/mysql-test/r/federated.result index 8f1fe20ea3b..00287338459 100644 --- a/mysql-test/r/federated.result +++ b/mysql-test/r/federated.result @@ -1955,6 +1955,117 @@ a 2 DROP TABLE federated.t1; DROP TABLE federated.t1; +create table t1 (a varchar(256)); +drop view if exists v1; +create view v1 as select a from t1; +create table t1 +(a varchar(256)) engine=federated +connection='mysql://root@127.0.0.1:SLAVE_PORT/test/v1'; +select 1 from t1 order by a; +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +drop table t1; +drop table t1; +drop view v1; End of 5.1 tests DROP TABLE IF EXISTS federated.t1; DROP DATABASE IF EXISTS federated; diff --git a/mysql-test/r/func_misc.result b/mysql-test/r/func_misc.result index a7119090ec0..745a340ec94 100644 --- a/mysql-test/r/func_misc.result +++ b/mysql-test/r/func_misc.result @@ -1,4 +1,4 @@ -DROP TABLE IF EXISTS t1; +DROP TABLE IF EXISTS t1, t2; select format(1.5555,0),format(123.5555,1),format(1234.5555,2),format(12345.55555,3),format(123456.5555,4),format(1234567.5555,5),format("12345.2399",2); format(1.5555,0) format(123.5555,1) format(1234.5555,2) format(12345.55555,3) format(123456.5555,4) format(1234567.5555,5) format("12345.2399",2) 2 123.6 1,234.56 12,345.556 123,456.5555 1,234,567.55550 12,345.24 @@ -212,6 +212,18 @@ test SELECT NAME_CONST('test', 'test'); test test +CREATE TABLE t1 (a int); +INSERT INTO t1 VALUES (5), (2); +SELECT NAME_CONST(x,2) FROM (SELECT a x FROM t1) t; +ERROR HY000: Incorrect arguments to NAME_CONST +DROP TABLE t1; +CREATE TABLE t1(a INT); +INSERT INTO t1 VALUES (), (), (); +SELECT NAME_CONST(a, '1') FROM t1; +ERROR HY000: Incorrect arguments to NAME_CONST +SET INSERT_ID= NAME_CONST(a, a); +ERROR HY000: Incorrect arguments to NAME_CONST +DROP TABLE t1; create table t1 (a int not null); insert into t1 values (-1), (-2); select min(a) from t1 group by inet_ntoa(a); diff --git a/mysql-test/r/func_time.result b/mysql-test/r/func_time.result index a355d7929b5..5e3726a06d6 100644 --- a/mysql-test/r/func_time.result +++ b/mysql-test/r/func_time.result @@ -1246,6 +1246,18 @@ select concat(a,ifnull(min(date_format(now(), '%Y-%m-%d')),' ull')) from t1; ERROR HY000: Illegal mix of collations (ascii_general_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation 'concat' set lc_time_names=en_US; drop table t1; +select DATE_ADD('20071108181000', INTERVAL 1 DAY); +DATE_ADD('20071108181000', INTERVAL 1 DAY) +2007-11-09 18:10:00 +select DATE_ADD(20071108181000, INTERVAL 1 DAY); +DATE_ADD(20071108181000, INTERVAL 1 DAY) +2007-11-09 18:10:00 +select DATE_ADD('20071108', INTERVAL 1 DAY); +DATE_ADD('20071108', INTERVAL 1 DAY) +2007-11-09 +select DATE_ADD(20071108, INTERVAL 1 DAY); +DATE_ADD(20071108, INTERVAL 1 DAY) +2007-11-09 End of 5.0 tests select date_sub("0050-01-01 00:00:01",INTERVAL 2 SECOND); date_sub("0050-01-01 00:00:01",INTERVAL 2 SECOND) diff --git a/mysql-test/r/gis.result b/mysql-test/r/gis.result index 61394409947..73fb9cc69e0 100644 --- a/mysql-test/r/gis.result +++ b/mysql-test/r/gis.result @@ -680,7 +680,7 @@ def test t1 t1 g g 255 4294967295 0 Y 144 0 63 g select asbinary(g) from t1; Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr -def asbinary(g) 252 16777216 0 Y 128 0 63 +def asbinary(g) 252 4294967295 0 Y 128 0 63 asbinary(g) drop table t1; create table t1 (a TEXT, b GEOMETRY NOT NULL, SPATIAL KEY(b)); @@ -742,6 +742,38 @@ select geomfromtext(col9,col89) as a from t1; a NULL DROP TABLE t1; +CREATE TABLE t1 ( +geomdata polygon NOT NULL, +SPATIAL KEY index_geom (geomdata) +) ENGINE=MyISAM DEFAULT CHARSET=latin2 DELAY_KEY_WRITE=1 ROW_FORMAT=FIXED; +CREATE TABLE t2 ( +geomdata polygon NOT NULL, +SPATIAL KEY index_geom (geomdata) +) ENGINE=MyISAM DEFAULT CHARSET=latin2 DELAY_KEY_WRITE=1 ROW_FORMAT=FIXED; +CREATE TABLE t3 +select +aswkb(ws.geomdata) AS geomdatawkb +from +t1 ws +union +select +aswkb(ws.geomdata) AS geomdatawkb +from +t2 ws; +describe t3; +Field Type Null Key Default Extra +geomdatawkb longblob YES NULL +drop table t1; +drop table t2; +drop table t3; +create table t1(col1 geometry default null,col15 geometrycollection not +null,spatial index(col15),index(col1(15)))engine=myisam; +insert into t1 set col15 = GeomFromText('POINT(6 5)'); +insert into t1 set col15 = GeomFromText('POINT(6 5)'); +check table t1 extended; +Table Op Msg_type Msg_text +test.t1 check status OK +drop table t1; End of 4.1 tests create table t1 (s1 geometry not null,s2 char(100)); create trigger t1_bu before update on t1 for each row set new.s1 = null; @@ -934,6 +966,12 @@ COUNT(*) 2 DROP TABLE t1, t2; End of 5.0 tests +create table `t1` (`col002` point)engine=myisam; +insert into t1 values (),(),(); +select min(`col002`) from t1 union select `col002` from t1; +min(`col002`) +NULL +drop table t1; End of 5.0 tests create table t1 (f1 tinyint(1), f2 char(1), f3 varchar(1), f4 geometry, f5 datetime); create view v1 as select * from t1; diff --git a/mysql-test/r/grant.result b/mysql-test/r/grant.result index c46f29b787f..0df3ac6de8a 100644 --- a/mysql-test/r/grant.result +++ b/mysql-test/r/grant.result @@ -1269,9 +1269,7 @@ use test; FLUSH PRIVILEGES without procs_priv table. RENAME TABLE mysql.procs_priv TO mysql.procs_gone; FLUSH PRIVILEGES; -Warnings: -Error 1146 Table 'mysql.procs_priv' doesn't exist -Error 1548 Cannot load from mysql.mysql.procs_priv. The table is probably corrupted +ERROR 42S02: Table 'mysql.procs_priv' doesn't exist Assigning privileges without procs_priv table. CREATE DATABASE mysqltest1; CREATE PROCEDURE mysqltest1.test() SQL SECURITY DEFINER diff --git a/mysql-test/r/group_min_max.result b/mysql-test/r/group_min_max.result index a3744b36e87..103a7f5515a 100644 --- a/mysql-test/r/group_min_max.result +++ b/mysql-test/r/group_min_max.result @@ -2326,3 +2326,49 @@ a 2 4 DROP TABLE t1; +CREATE TABLE t1 (a INT, b INT); +INSERT INTO t1 (a, b) VALUES (1,1), (1,2), (1,3); +INSERT INTO t1 SELECT a + 1, b FROM t1; +INSERT INTO t1 SELECT a + 2, b FROM t1; +EXPLAIN +SELECT a, MIN(b), MAX(b) FROM t1 GROUP BY a ORDER BY a DESC; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 ALL NULL NULL NULL NULL 12 Using temporary; Using filesort +SELECT a, MIN(b), MAX(b) FROM t1 GROUP BY a ORDER BY a DESC; +a MIN(b) MAX(b) +4 1 3 +3 1 3 +2 1 3 +1 1 3 +CREATE INDEX break_it ON t1 (a, b); +EXPLAIN +SELECT a, MIN(b), MAX(b) FROM t1 GROUP BY a ORDER BY a; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 range NULL break_it 10 NULL 7 Using index for group-by +SELECT a, MIN(b), MAX(b) FROM t1 GROUP BY a ORDER BY a; +a MIN(b) MAX(b) +1 1 3 +2 1 3 +3 1 3 +4 1 3 +EXPLAIN +SELECT a, MIN(b), MAX(b) FROM t1 GROUP BY a ORDER BY a DESC; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 range NULL break_it 10 NULL 7 Using index for group-by; Using temporary; Using filesort +SELECT a, MIN(b), MAX(b) FROM t1 GROUP BY a ORDER BY a DESC; +a MIN(b) MAX(b) +4 1 3 +3 1 3 +2 1 3 +1 1 3 +EXPLAIN +SELECT a, MIN(b), MAX(b), AVG(b) FROM t1 GROUP BY a ORDER BY a DESC; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 index NULL break_it 10 NULL 12 Using index +SELECT a, MIN(b), MAX(b), AVG(b) FROM t1 GROUP BY a ORDER BY a DESC; +a MIN(b) MAX(b) AVG(b) +4 1 3 2.0000 +3 1 3 2.0000 +2 1 3 2.0000 +1 1 3 2.0000 +DROP TABLE t1; diff --git a/mysql-test/r/index_merge_myisam.result b/mysql-test/r/index_merge_myisam.result index 9d7d06f7f1b..1827871861e 100644 --- a/mysql-test/r/index_merge_myisam.result +++ b/mysql-test/r/index_merge_myisam.result @@ -342,6 +342,8 @@ create table t4 (a int); insert into t4 values (1),(4),(3); set @save_join_buffer_size=@@join_buffer_size; set join_buffer_size= 4000; +Warnings: +Warning 1292 Truncated incorrect join_buffer_size value: '4000' explain select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5) from t0 as A force index(i1,i2), t0 as B force index (i1,i2) where (A.key1 < 500000 or A.key2 < 3) diff --git a/mysql-test/r/information_schema.result b/mysql-test/r/information_schema.result index ba6c2cd7854..ddc0e189cd2 100644 --- a/mysql-test/r/information_schema.result +++ b/mysql-test/r/information_schema.result @@ -1615,4 +1615,12 @@ id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE tables ALL NULL NULL NULL NULL NULL NULL Skip_open_table; Scanned all databases Warnings: Note 1003 select 1 AS `1` from `information_schema`.`tables` +use information_schema; +show events; +Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation +show events from information_schema; +Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation +show events where Db= 'information_schema'; +Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation +use test; End of 5.1 tests. diff --git a/mysql-test/r/innodb.result b/mysql-test/r/innodb.result index c04ec77846a..d0c586de8d4 100644 --- a/mysql-test/r/innodb.result +++ b/mysql-test/r/innodb.result @@ -1768,6 +1768,8 @@ show variables like "innodb_thread_concurrency"; Variable_name Value innodb_thread_concurrency 8 set global innodb_thread_concurrency=1001; +Warnings: +Warning 1292 Truncated incorrect thread_concurrency value: '1001' show variables like "innodb_thread_concurrency"; Variable_name Value innodb_thread_concurrency 1000 @@ -1787,6 +1789,8 @@ show variables like "innodb_concurrency_tickets"; Variable_name Value innodb_concurrency_tickets 1000 set global innodb_concurrency_tickets=0; +Warnings: +Warning 1292 Truncated incorrect concurrency_tickets value: '0' show variables like "innodb_concurrency_tickets"; Variable_name Value innodb_concurrency_tickets 1 diff --git a/mysql-test/r/innodb_mysql.result b/mysql-test/r/innodb_mysql.result index c3896e97165..87cf1acc10c 100644 --- a/mysql-test/r/innodb_mysql.result +++ b/mysql-test/r/innodb_mysql.result @@ -1,3 +1,5 @@ +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; @@ -675,6 +677,8 @@ 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 @@ -1340,6 +1344,18 @@ t1 CREATE TABLE `t1` ( 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 3 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; End of 5.0 tests CREATE TABLE `t2` ( `k` int(11) NOT NULL auto_increment, diff --git a/mysql-test/r/key_cache.result b/mysql-test/r/key_cache.result index 08d8059f61b..9ada5dc0784 100644 --- a/mysql-test/r/key_cache.result +++ b/mysql-test/r/key_cache.result @@ -276,6 +276,8 @@ Variable_name Value Key_blocks_unused KEY_BLOCKS_UNUSED set global keycache2.key_buffer_size=0; set global keycache3.key_buffer_size=100; +Warnings: +Warning 1292 Truncated incorrect key_buffer_size value: '100' set global keycache3.key_buffer_size=0; create table t1 (mytext text, FULLTEXT (mytext)); insert t1 values ('aaabbb'); diff --git a/mysql-test/r/lock_multi.result b/mysql-test/r/lock_multi.result index 4a0f70a7b88..9c4f1b17dcc 100644 --- a/mysql-test/r/lock_multi.result +++ b/mysql-test/r/lock_multi.result @@ -113,4 +113,34 @@ handler t1 open; ERROR HY000: Table storage engine for 't1' doesn't have this option --> client 1 drop table t1; +drop table if exists t1; +create table t1 (i int); +connection: default +lock tables t1 write; +connection: flush +flush tables with read lock;; +connection: default +alter table t1 add column j int; +connection: insert +insert into t1 values (1,2);; +connection: default +unlock tables; +connection: flush +select * from t1; +i j +unlock tables; +select * from t1; +i j +1 2 +drop table t1; +drop table if exists t1; +create table t1 (i int); +connection: default +lock tables t1 write; +connection: flush +flush tables with read lock;; +connection: default +flush tables; +unlock tables; +drop table t1; End of 5.1 tests diff --git a/mysql-test/r/merge.result b/mysql-test/r/merge.result index ba1680f2cac..a709817b7ef 100644 --- a/mysql-test/r/merge.result +++ b/mysql-test/r/merge.result @@ -927,6 +927,43 @@ CREATE TABLE t2 (c1 INT) ENGINE=MERGE UNION=(t1) INSERT_METHOD=FIRST; CREATE TABLE IF NOT EXISTS t1 SELECT * FROM t2; ERROR HY000: You can't specify target table 't1' for update in FROM clause DROP TABLE t1, t2; +CREATE TABLE t1 (id INT NOT NULL, ref INT NOT NULL, INDEX (id)) ENGINE=MyISAM; +CREATE TABLE t2 LIKE t1; +INSERT INTO t2 (id, ref) VALUES (1,3), (2,1), (3,2), (4,5), (4,4); +INSERT INTO t1 SELECT * FROM t2; +INSERT INTO t1 SELECT * FROM t2; +CREATE TABLE t3 (id INT NOT NULL, ref INT NOT NULL, INDEX (id)) ENGINE=MERGE +UNION(t1); +SELECT * FROM t3 AS a INNER JOIN t3 AS b USING (id) WHERE a.ref < b.ref; +id ref ref +4 4 5 +4 4 5 +4 4 5 +4 4 5 +SELECT * FROM t3; +id ref +1 3 +2 1 +3 2 +4 5 +4 4 +1 3 +2 1 +3 2 +4 5 +4 4 +DELETE FROM a USING t3 AS a INNER JOIN t3 AS b USING (id) WHERE a.ref < b.ref; +SELECT * FROM t3; +id ref +1 3 +2 1 +3 2 +4 5 +1 3 +2 1 +3 2 +4 5 +DROP TABLE t1, t2, t3; End of 5.0 tests create table t1 (c1 int, index(c1)); create table t2 (c1 int, index(c1)) engine=merge union=(t1); diff --git a/mysql-test/r/merge_innodb.result b/mysql-test/r/merge_innodb.result new file mode 100644 index 00000000000..f6057d279b1 --- /dev/null +++ b/mysql-test/r/merge_innodb.result @@ -0,0 +1,37 @@ +DROP TABLE IF EXISTS t1, t2, t3, t4, t5; +CREATE TABLE t1 (c1 varchar(100)) ENGINE=MyISAM; +CREATE TABLE t2 (c1 varchar(100)) ENGINE=MyISAM; +CREATE TABLE t3 (c1 varchar(100)) ENGINE=InnoDB; +INSERT INTO t1 VALUES ('Ann'), ('Alice'); +INSERT INTO t2 VALUES ('Bob'), ('Brian'); +INSERT INTO t3 VALUES ('Chris'), ('Charlie'); +CREATE TABLE t4 (c1 varchar(100)) ENGINE=MRG_MYISAM UNION=(t1,t2) +INSERT_METHOD=LAST; +CREATE TABLE t5 (c1 varchar(100)) ENGINE=MRG_MYISAM UNION=(t1,t3) +INSERT_METHOD=LAST; +SELECT * FROM t5; +ERROR HY000: Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exist +SELECT * FROM t4; +c1 +Ann +Alice +Bob +Brian +ALTER TABLE t2 ENGINE=InnoDB; +SELECT * FROM t4; +ERROR HY000: Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exist +DELETE FROM t2 LIMIT 1; +SELECT * FROM t4; +ERROR HY000: Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exist +INSERT INTO t4 VALUES ('Beware'); +ERROR HY000: Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exist +SELECT * FROM t4; +ERROR HY000: Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exist +SELECT * FROM t2; +c1 +Brian +SELECT * FROM t1; +c1 +Ann +Alice +DROP TABLE t1, t2, t3, t4, t5; diff --git a/mysql-test/r/myisam.result b/mysql-test/r/myisam.result index 353d66b1ad5..1c8b5e9d7d9 100644 --- a/mysql-test/r/myisam.result +++ b/mysql-test/r/myisam.result @@ -1809,6 +1809,28 @@ CHECK TABLE t1 EXTENDED; Table Op Msg_type Msg_text test.t1 check status OK DROP TABLE t1; +CREATE TABLE t1 (id int NOT NULL, ref int NOT NULL, INDEX (id)) ENGINE=MyISAM; +CREATE TABLE t2 LIKE t1; +INSERT INTO t2 (id, ref) VALUES (1,3), (2,1), (3,2), (4,5), (4,4); +INSERT INTO t1 SELECT * FROM t2; +SELECT * FROM t1 AS a INNER JOIN t1 AS b USING (id) WHERE a.ref < b.ref; +id ref ref +4 4 5 +SELECT * FROM t1; +id ref +1 3 +2 1 +3 2 +4 5 +4 4 +DELETE FROM a USING t1 AS a INNER JOIN t1 AS b USING (id) WHERE a.ref < b.ref; +SELECT * FROM t1; +id ref +1 3 +2 1 +3 2 +4 5 +DROP TABLE t1, t2; End of 5.0 tests create table t1 (a int not null, key `a` (a) key_block_size=1024); show create table t1; diff --git a/mysql-test/r/no-threads.result b/mysql-test/r/no-threads.result index aefecd0f7bc..9bc2dad6e2a 100644 --- a/mysql-test/r/no-threads.result +++ b/mysql-test/r/no-threads.result @@ -7,3 +7,7 @@ select 1+2; SHOW GLOBAL VARIABLES LIKE 'thread_handling'; Variable_name Value thread_handling no-threads +select @@session.thread_handling; +ERROR HY000: Variable 'thread_handling' is a GLOBAL variable +set GLOBAL thread_handling='one-thread'; +ERROR HY000: Variable 'thread_handling' is a read only variable diff --git a/mysql-test/r/outfile_loaddata.result b/mysql-test/r/outfile_loaddata.result index 1bcaf308b7c..4a9bdcf412d 100644 --- a/mysql-test/r/outfile_loaddata.result +++ b/mysql-test/r/outfile_loaddata.result @@ -82,4 +82,22 @@ c1 c2 -r- =raker= DROP TABLE t2; DROP TABLE t1; +# +# Bug#32533: SELECT INTO OUTFILE never escapes multibyte character +# +CREATE TABLE t1 (c1 VARCHAR(256)); +INSERT INTO t1 VALUES (0xC3); +SELECT HEX(c1) FROM t1; +HEX(c1) +C3 +SELECT * INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/bug32533.txt' FIELDS ENCLOSED BY 0xC3 FROM t1; +TRUNCATE t1; +SELECT HEX(LOAD_FILE('MYSQLTEST_VARDIR/tmp/bug32533.txt')); +HEX(LOAD_FILE('MYSQLTEST_VARDIR/tmp/bug32533.txt')) +C35CC3C30A +LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/bug32533.txt' INTO TABLE t1 FIELDS ENCLOSED BY 0xC3; +SELECT HEX(c1) FROM t1; +HEX(c1) +C3 +DROP TABLE t1; # End of 5.0 tests. diff --git a/mysql-test/r/packet.result b/mysql-test/r/packet.result index dfb5595e02d..df0d9ff9adc 100644 --- a/mysql-test/r/packet.result +++ b/mysql-test/r/packet.result @@ -1,7 +1,15 @@ set global max_allowed_packet=100; +Warnings: +Warning 1292 Truncated incorrect max_allowed_packet value: '100' set max_allowed_packet=100; +Warnings: +Warning 1292 Truncated incorrect max_allowed_packet value: '100' set global net_buffer_length=100; +Warnings: +Warning 1292 Truncated incorrect net_buffer_length value: '100' set net_buffer_length=100; +Warnings: +Warning 1292 Truncated incorrect net_buffer_length value: '100' SELECT length("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") as len; len 1024 diff --git a/mysql-test/r/partition.result b/mysql-test/r/partition.result index 7c25e948d6c..a361a8f6bcc 100644 --- a/mysql-test/r/partition.result +++ b/mysql-test/r/partition.result @@ -1297,6 +1297,19 @@ create table t1 partition by key(s1) partitions 3; insert into t1 values (null,null); drop table t1; +create table t1 ( +c0 int, +c1 bigint, +c2 set('sweet'), +key (c2,c1,c0), +key(c0) +) engine=myisam partition by hash (month(c0)) partitions 5; +insert ignore into t1 set c0 = -6502262, c1 = 3992917, c2 = 35019; +insert ignore into t1 set c0 = 241221, c1 = -6862346, c2 = 56644; +select c1 from t1 group by (select c0 from t1 limit 1); +c1 +-6862346 +drop table t1; CREATE TABLE t1(a int) PARTITION BY RANGE (a) ( PARTITION p1 VALUES LESS THAN (10), @@ -1307,4 +1320,101 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp ALTER TABLE t1 ANALYZE PARTITION p1 EXTENDED; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'EXTENDED' at line 1 DROP TABLE t1; +CREATE TABLE t1 (s1 BIGINT UNSIGNED) +PARTITION BY RANGE (s1) ( +PARTITION p0 VALUES LESS THAN (0), +PARTITION p1 VALUES LESS THAN (1), +PARTITION p2 VALUES LESS THAN (18446744073709551615) +); +INSERT INTO t1 VALUES (0), (18446744073709551614); +INSERT INTO t1 VALUES (18446744073709551615); +ERROR HY000: Table has no partition for value 18446744073709551615 +DROP TABLE t1; +CREATE TABLE t1 (s1 BIGINT UNSIGNED) +PARTITION BY RANGE (s1) ( +PARTITION p0 VALUES LESS THAN (0), +PARTITION p1 VALUES LESS THAN (1), +PARTITION p2 VALUES LESS THAN (18446744073709551614), +PARTITION p3 VALUES LESS THAN MAXVALUE +); +INSERT INTO t1 VALUES (-1), (0), (18446744073709551613), +(18446744073709551614), (18446744073709551615); +Warnings: +Warning 1264 Out of range value for column 's1' at row 1 +SELECT * FROM t1; +s1 +0 +0 +18446744073709551613 +18446744073709551614 +18446744073709551615 +SELECT * FROM t1 WHERE s1 = 0; +s1 +0 +0 +SELECT * FROM t1 WHERE s1 = 18446744073709551614; +s1 +18446744073709551614 +SELECT * FROM t1 WHERE s1 = 18446744073709551615; +s1 +18446744073709551615 +DROP TABLE t1; +CREATE TABLE t1 (s1 BIGINT UNSIGNED) +PARTITION BY RANGE (s1) ( +PARTITION p0 VALUES LESS THAN (0), +PARTITION p1 VALUES LESS THAN (1), +PARTITION p2 VALUES LESS THAN (18446744073709551615), +PARTITION p3 VALUES LESS THAN MAXVALUE +); +DROP TABLE t1; +CREATE TABLE t1 +(int_column INT, char_column CHAR(5), +PRIMARY KEY(char_column,int_column)) +PARTITION BY KEY(char_column,int_column) +PARTITIONS 101; +INSERT INTO t1 (int_column, char_column) VALUES +( 39868 ,'zZZRW'), +( 545592 ,'zZzSD'), +( 4936 ,'zzzsT'), +( 9274 ,'ZzZSX'), +( 970185 ,'ZZzTN'), +( 786036 ,'zZzTO'), +( 37240 ,'zZzTv'), +( 313801 ,'zzzUM'), +( 782427 ,'ZZZva'), +( 907955 ,'zZZvP'), +( 453491 ,'zzZWV'), +( 756594 ,'ZZZXU'), +( 718061 ,'ZZzZH'); +SELECT * FROM t1 ORDER BY char_column DESC; +int_column char_column +718061 ZZzZH +756594 ZZZXU +453491 zzZWV +907955 zZZvP +782427 ZZZva +313801 zzzUM +37240 zZzTv +786036 zZzTO +970185 ZZzTN +9274 ZzZSX +4936 zzzsT +545592 zZzSD +39868 zZZRW +DROP TABLE t1; +CREATE TABLE t1(id MEDIUMINT NOT NULL AUTO_INCREMENT, +user CHAR(25), PRIMARY KEY(id)) +PARTITION BY RANGE(id) +SUBPARTITION BY hash(id) subpartitions 2 +(PARTITION pa1 values less than (10), +PARTITION pa2 values less than (20), +PARTITION pa11 values less than MAXVALUE); +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `id` mediumint(9) NOT NULL AUTO_INCREMENT, + `user` char(25) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM AUTO_INCREMENT=16 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (id) SUBPARTITION BY HASH (id) SUBPARTITIONS 2 (PARTITION pa1 VALUES LESS THAN (10) ENGINE = MyISAM, PARTITION pa2 VALUES LESS THAN (20) ENGINE = MyISAM, PARTITION pa11 VALUES LESS THAN MAXVALUE ENGINE = MyISAM) */ +drop table t1; End of 5.1 tests diff --git a/mysql-test/r/partition_archive.result b/mysql-test/r/partition_archive.result index dd063f6224c..5c84b41e81b 100644 --- a/mysql-test/r/partition_archive.result +++ b/mysql-test/r/partition_archive.result @@ -1,4 +1,5 @@ drop database if exists db99; +drop table if exists t1; create database db99; use db99; create table t1 (a int not null) @@ -11,3 +12,80 @@ alter table t1 add partition (partition p2 values in (3)); alter table t1 drop partition p2; use test; drop database db99; +create table t1 (f1 integer) engine= ARCHIVE partition by list(f1) +( +partition p1 values in (1), +partition p2 values in (NULL), +partition p3 values in (2), +partition p4 values in (3), +partition p5 values in (4) +); +insert into t1 values (1),(2),(3),(4),(null); +select * from t1; +f1 +1 +NULL +2 +3 +4 +select * from t1 where f1 < 3; +f1 +1 +2 +drop table t1; +CREATE TABLE t1 ( +a int not null, +b int not null, +c int not null) engine=ARCHIVE +partition by hash (a + 2) +partitions 3 +(partition x1 tablespace ts1, +partition x2 tablespace ts2, +partition x3 tablespace ts3); +insert into t1 values (1,1,1); +insert into t1 values (2,1,1); +insert into t1 values (3,1,1); +insert into t1 values (4,1,1); +insert into t1 values (5,1,1); +select * from t1; +a b c +1 1 1 +4 1 1 +2 1 1 +5 1 1 +3 1 1 +drop table t1; +create table t1 (a int) engine=archive partition by hash(a); +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) */ +drop table t1; +CREATE TABLE t1(id MEDIUMINT NOT NULL AUTO_INCREMENT, +f1 VARCHAR(25), +PRIMARY KEY(id)) ENGINE=ARCHIVE +PARTITION BY RANGE(id) +SUBPARTITION BY hash(id) subpartitions 2 +(PARTITION pa1 values less than (10), +PARTITION pa2 values less than (20), +PARTITION pa3 values less than (30), +PARTITION pa4 values less than (40), +PARTITION pa5 values less than (50), +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); +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `id` mediumint(9) NOT NULL AUTO_INCREMENT, + `f1` varchar(25) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=ARCHIVE AUTO_INCREMENT=101 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (id) SUBPARTITION BY HASH (id) SUBPARTITIONS 2 (PARTITION pa1 VALUES LESS THAN (10) ENGINE = ARCHIVE, PARTITION pa2 VALUES LESS THAN (20) ENGINE = ARCHIVE, PARTITION pa3 VALUES LESS THAN (30) ENGINE = ARCHIVE, PARTITION pa4 VALUES LESS THAN (40) ENGINE = ARCHIVE, PARTITION pa5 VALUES LESS THAN (50) ENGINE = ARCHIVE, PARTITION pa6 VALUES LESS THAN (60) ENGINE = ARCHIVE, PARTITION pa7 VALUES LESS THAN (70) ENGINE = ARCHIVE, PARTITION pa8 VALUES LESS THAN (80) ENGINE = ARCHIVE, PARTITION pa9 VALUES LESS THAN (90) ENGINE = ARCHIVE, PARTITION pa10 VALUES LESS THAN (100) ENGINE = ARCHIVE, PARTITION pa11 VALUES LESS THAN MAXVALUE ENGINE = ARCHIVE) */ +select count(*) from t1; +count(*) +100 +drop table t1; diff --git a/mysql-test/r/partition_hash.result b/mysql-test/r/partition_hash.result index 72f036be099..94fefe77a77 100644 --- a/mysql-test/r/partition_hash.result +++ b/mysql-test/r/partition_hash.result @@ -1,4 +1,16 @@ drop table if exists t1; +CREATE TABLE t1 (c1 INT) +PARTITION BY HASH (c1) +PARTITIONS 15; +INSERT INTO t1 VALUES (1), (2), (3), (4), (5); +ALTER TABLE t1 COALESCE PARTITION 13; +DROP TABLE t1; +CREATE TABLE t1 (c1 INT) +PARTITION BY LINEAR HASH (c1) +PARTITIONS 5; +INSERT INTO t1 VALUES (1), (2), (3), (4), (5); +ALTER TABLE t1 COALESCE PARTITION 3; +DROP TABLE t1; create table t1 (a int unsigned) partition by hash(a div 2) partitions 4; diff --git a/mysql-test/r/partition_innodb.result b/mysql-test/r/partition_innodb.result index f80e0001ea8..5cbe34c94ca 100644 --- a/mysql-test/r/partition_innodb.result +++ b/mysql-test/r/partition_innodb.result @@ -1,3 +1,15 @@ +# Bug#32948 +CREATE TABLE t1 (c1 INT, PRIMARY KEY (c1)) ENGINE=INNODB; +CREATE TABLE t2 (c1 INT, PRIMARY KEY (c1), +FOREIGN KEY (c1) REFERENCES t1 (c1) +ON DELETE CASCADE) +ENGINE=INNODB; +ALTER TABLE t1 PARTITION BY HASH(c1) PARTITIONS 5; +ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails +ALTER TABLE t1 ENGINE=MyISAM; +ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails +DROP TABLE t2; +DROP TABLE t1; create table t1 (a int) engine=innodb partition by hash(a) ; show table status like 't1'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment diff --git a/mysql-test/r/partition_range.result b/mysql-test/r/partition_range.result index a61006e87a4..4da79704ec3 100644 --- a/mysql-test/r/partition_range.result +++ b/mysql-test/r/partition_range.result @@ -1,4 +1,4 @@ -drop table if exists t1; +drop table if exists t1, t2; create table t1 (a int unsigned) partition by range (a) (partition pnull values less than (0), diff --git a/mysql-test/r/ps.result b/mysql-test/r/ps.result index ae68f8a4c5e..a6b07bfc127 100644 --- a/mysql-test/r/ps.result +++ b/mysql-test/r/ps.result @@ -807,6 +807,8 @@ select @@max_prepared_stmt_count; @@max_prepared_stmt_count 0 set global max_prepared_stmt_count=10000000000000000; +Warnings: +Warning 1292 Truncated incorrect max_prepared_stmt_count value: '10000000000000000' select @@max_prepared_stmt_count; @@max_prepared_stmt_count 1048576 diff --git a/mysql-test/r/ps_2myisam.result b/mysql-test/r/ps_2myisam.result index eb8ef7a85c3..fbc6781e5e7 100644 --- a/mysql-test/r/ps_2myisam.result +++ b/mysql-test/r/ps_2myisam.result @@ -783,20 +783,20 @@ a b 2 two 3 three 4 four -prepare stmt1 from ' SELECT a as ccc from t1 where a+1= - (SELECT 1+ccc from t1 where ccc+1=a+1 and a=1) '; +prepare stmt1 from ' SELECT a as ccc from t1 outr where a+1= + (SELECT 1+outr.a from t1 where outr.a+1=a+1 and a=1) '; execute stmt1 ; ccc 1 deallocate prepare stmt1 ; -prepare stmt1 from ' SELECT a as ccc from t1 where a+1= - (SELECT 1+ccc from t1 where ccc+1=a+1 and a=1) '; +prepare stmt1 from ' SELECT a as ccc from t1 outr where a+1= + (SELECT 1+outr.a from t1 where outr.a+1=a+1 and a=1) '; execute stmt1 ; ccc 1 deallocate prepare stmt1 ; -prepare stmt1 from ' SELECT a as ccc from t1 where a+1= - (SELECT 1+ccc from t1 where ccc+1=a+1 and a=1) '; +prepare stmt1 from ' SELECT a as ccc from t1 outr where a+1= + (SELECT 1+outr.a from t1 where outr.a+1=a+1 and a=1) '; execute stmt1 ; ccc 1 diff --git a/mysql-test/r/ps_3innodb.result b/mysql-test/r/ps_3innodb.result index 15650efa41d..fcd0b5de9a0 100644 --- a/mysql-test/r/ps_3innodb.result +++ b/mysql-test/r/ps_3innodb.result @@ -783,20 +783,20 @@ a b 2 two 3 three 4 four -prepare stmt1 from ' SELECT a as ccc from t1 where a+1= - (SELECT 1+ccc from t1 where ccc+1=a+1 and a=1) '; +prepare stmt1 from ' SELECT a as ccc from t1 outr where a+1= + (SELECT 1+outr.a from t1 where outr.a+1=a+1 and a=1) '; execute stmt1 ; ccc 1 deallocate prepare stmt1 ; -prepare stmt1 from ' SELECT a as ccc from t1 where a+1= - (SELECT 1+ccc from t1 where ccc+1=a+1 and a=1) '; +prepare stmt1 from ' SELECT a as ccc from t1 outr where a+1= + (SELECT 1+outr.a from t1 where outr.a+1=a+1 and a=1) '; execute stmt1 ; ccc 1 deallocate prepare stmt1 ; -prepare stmt1 from ' SELECT a as ccc from t1 where a+1= - (SELECT 1+ccc from t1 where ccc+1=a+1 and a=1) '; +prepare stmt1 from ' SELECT a as ccc from t1 outr where a+1= + (SELECT 1+outr.a from t1 where outr.a+1=a+1 and a=1) '; execute stmt1 ; ccc 1 diff --git a/mysql-test/r/ps_4heap.result b/mysql-test/r/ps_4heap.result index 486f770220e..862c0ff75c1 100644 --- a/mysql-test/r/ps_4heap.result +++ b/mysql-test/r/ps_4heap.result @@ -784,20 +784,20 @@ a b 2 two 3 three 4 four -prepare stmt1 from ' SELECT a as ccc from t1 where a+1= - (SELECT 1+ccc from t1 where ccc+1=a+1 and a=1) '; +prepare stmt1 from ' SELECT a as ccc from t1 outr where a+1= + (SELECT 1+outr.a from t1 where outr.a+1=a+1 and a=1) '; execute stmt1 ; ccc 1 deallocate prepare stmt1 ; -prepare stmt1 from ' SELECT a as ccc from t1 where a+1= - (SELECT 1+ccc from t1 where ccc+1=a+1 and a=1) '; +prepare stmt1 from ' SELECT a as ccc from t1 outr where a+1= + (SELECT 1+outr.a from t1 where outr.a+1=a+1 and a=1) '; execute stmt1 ; ccc 1 deallocate prepare stmt1 ; -prepare stmt1 from ' SELECT a as ccc from t1 where a+1= - (SELECT 1+ccc from t1 where ccc+1=a+1 and a=1) '; +prepare stmt1 from ' SELECT a as ccc from t1 outr where a+1= + (SELECT 1+outr.a from t1 where outr.a+1=a+1 and a=1) '; execute stmt1 ; ccc 1 diff --git a/mysql-test/r/ps_5merge.result b/mysql-test/r/ps_5merge.result index 0229b0ece08..51393cc8bc3 100644 --- a/mysql-test/r/ps_5merge.result +++ b/mysql-test/r/ps_5merge.result @@ -826,20 +826,20 @@ a b 2 two 3 three 4 four -prepare stmt1 from ' SELECT a as ccc from t1 where a+1= - (SELECT 1+ccc from t1 where ccc+1=a+1 and a=1) '; +prepare stmt1 from ' SELECT a as ccc from t1 outr where a+1= + (SELECT 1+outr.a from t1 where outr.a+1=a+1 and a=1) '; execute stmt1 ; ccc 1 deallocate prepare stmt1 ; -prepare stmt1 from ' SELECT a as ccc from t1 where a+1= - (SELECT 1+ccc from t1 where ccc+1=a+1 and a=1) '; +prepare stmt1 from ' SELECT a as ccc from t1 outr where a+1= + (SELECT 1+outr.a from t1 where outr.a+1=a+1 and a=1) '; execute stmt1 ; ccc 1 deallocate prepare stmt1 ; -prepare stmt1 from ' SELECT a as ccc from t1 where a+1= - (SELECT 1+ccc from t1 where ccc+1=a+1 and a=1) '; +prepare stmt1 from ' SELECT a as ccc from t1 outr where a+1= + (SELECT 1+outr.a from t1 where outr.a+1=a+1 and a=1) '; execute stmt1 ; ccc 1 @@ -3848,20 +3848,20 @@ a b 2 two 3 three 4 four -prepare stmt1 from ' SELECT a as ccc from t1 where a+1= - (SELECT 1+ccc from t1 where ccc+1=a+1 and a=1) '; +prepare stmt1 from ' SELECT a as ccc from t1 outr where a+1= + (SELECT 1+outr.a from t1 where outr.a+1=a+1 and a=1) '; execute stmt1 ; ccc 1 deallocate prepare stmt1 ; -prepare stmt1 from ' SELECT a as ccc from t1 where a+1= - (SELECT 1+ccc from t1 where ccc+1=a+1 and a=1) '; +prepare stmt1 from ' SELECT a as ccc from t1 outr where a+1= + (SELECT 1+outr.a from t1 where outr.a+1=a+1 and a=1) '; execute stmt1 ; ccc 1 deallocate prepare stmt1 ; -prepare stmt1 from ' SELECT a as ccc from t1 where a+1= - (SELECT 1+ccc from t1 where ccc+1=a+1 and a=1) '; +prepare stmt1 from ' SELECT a as ccc from t1 outr where a+1= + (SELECT 1+outr.a from t1 where outr.a+1=a+1 and a=1) '; execute stmt1 ; ccc 1 diff --git a/mysql-test/r/ps_ddl.result b/mysql-test/r/ps_ddl.result new file mode 100644 index 00000000000..0987e765265 --- /dev/null +++ b/mysql-test/r/ps_ddl.result @@ -0,0 +1,2329 @@ +===================================================================== +Testing 1: NOTHING -> TABLE transitions +===================================================================== +drop table if exists t1; +SELECT VARIABLE_VALUE from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' +into @base_count ; +prepare stmt from 'select * from t1'; +ERROR 42S02: Table 'test.t1' doesn't exist +===================================================================== +Testing 2: NOTHING -> TEMPORARY TABLE transitions +===================================================================== +===================================================================== +Testing 3: NOTHING -> VIEW transitions +===================================================================== +===================================================================== +Testing 4: TABLE -> NOTHING transitions +===================================================================== +drop table if exists t4; +SELECT VARIABLE_VALUE from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' +into @base_count ; +create table t4(a int); +prepare stmt from 'select * from t4'; +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop table t4; +execute stmt; +ERROR 42S02: Table 'test.t4' doesn't exist +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +ERROR 42S02: Table 'test.t4' doesn't exist +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +===================================================================== +Testing 5: TABLE -> TABLE (DDL) transitions +===================================================================== +drop table if exists t5; +SELECT VARIABLE_VALUE from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' +into @base_count ; +create table t5(a int); +prepare stmt from 'select * from t5'; +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +alter table t5 add column (b int); +execute stmt; +a b +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +execute stmt; +a b +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +drop table t5; +===================================================================== +Testing 6: TABLE -> TABLE (TRIGGER) transitions +===================================================================== +drop table if exists t6; +SELECT VARIABLE_VALUE from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' +into @base_count ; +create table t6(a int); +prepare stmt from 'insert into t6(a) value (?)'; +set @val=1; +execute stmt using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +set @val=2; +execute stmt using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +create trigger t6_bi before insert on t6 for each row +begin +set @message= "t6_bi"; +end +$$ +set @message="none"; +set @val=3; +execute stmt using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +select @message; +@message +t6_bi +set @val=4; +execute stmt using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +select @message; +@message +t6_bi +prepare stmt from 'insert into t6(a) value (?)'; +set @message="none"; +set @val=5; +execute stmt using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +select @message; +@message +t6_bi +set @message="none"; +set @val=6; +execute stmt using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +select @message; +@message +t6_bi +create trigger t6_bd before delete on t6 for each row +begin +set @message= "t6_bd"; +end +$$ +set @message="none"; +set @val=7; +execute stmt using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +select @message; +@message +t6_bi +set @message="none"; +set @val=8; +execute stmt using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +select @message; +@message +t6_bi +prepare stmt from 'insert into t6(a) value (?)'; +set @message="none"; +set @val=9; +execute stmt using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +select @message; +@message +t6_bi +set @message="none"; +set @val=10; +execute stmt using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +select @message; +@message +t6_bi +drop trigger t6_bi; +create trigger t6_bi before insert on t6 for each row +begin +set @message= "t6_bi (2)"; +end +$$ +set @message="none"; +set @val=11; +execute stmt using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +2 +select @message; +@message +t6_bi (2) +set @val=12; +execute stmt using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +2 +select @message; +@message +t6_bi (2) +prepare stmt from 'insert into t6(a) value (?)'; +set @message="none"; +set @val=13; +execute stmt using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +2 +select @message; +@message +t6_bi (2) +set @message="none"; +set @val=14; +execute stmt using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +2 +select @message; +@message +t6_bi (2) +drop trigger t6_bd; +create trigger t6_bd before delete on t6 for each row +begin +set @message= "t6_bd (2)"; +end +$$ +set @message="none"; +set @val=15; +execute stmt using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +2 +select @message; +@message +t6_bi (2) +set @message="none"; +set @val=16; +execute stmt using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +2 +select @message; +@message +t6_bi (2) +prepare stmt from 'insert into t6(a) value (?)'; +set @message="none"; +set @val=17; +execute stmt using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +2 +select @message; +@message +t6_bi (2) +set @message="none"; +set @val=18; +execute stmt using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +2 +select @message; +@message +t6_bi (2) +drop trigger t6_bi; +set @message="none"; +set @val=19; +execute stmt using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +2 +select @message; +@message +none +set @val=20; +execute stmt using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +2 +select @message; +@message +none +prepare stmt from 'insert into t6(a) value (?)'; +set @message="none"; +set @val=21; +execute stmt using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +2 +select @message; +@message +none +set @val=22; +execute stmt using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +2 +select @message; +@message +none +drop trigger t6_bd; +set @val=23; +execute stmt using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +2 +select @message; +@message +none +set @val=24; +execute stmt using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +2 +select @message; +@message +none +select * from t6 order by a; +a +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +drop table t6; +===================================================================== +Testing 7: TABLE -> TABLE (TRIGGER dependencies) transitions +===================================================================== +drop table if exists t7_proc; +drop table if exists t7_func; +drop table if exists t7_view; +drop table if exists t7_table; +drop table if exists t7_dependent_table; +drop table if exists t7_table_trigger; +drop table if exists t7_audit; +drop procedure if exists audit_proc; +drop function if exists audit_func; +drop view if exists audit_view; +SELECT VARIABLE_VALUE from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' +into @base_count ; +create table t7_proc(a int); +create table t7_func(a int); +create table t7_view(a int); +create table t7_table(a int); +create table t7_table_trigger(a int); +create table t7_audit(old_a int, new_a int, reason varchar(50)); +create table t7_dependent_table(old_a int, new_a int, reason varchar(50)); +create procedure audit_proc(a int) +insert into t7_audit values (NULL, a, "proc v1"); +create function audit_func() returns varchar(50) +return "func v1"; +create view audit_view as select "view v1" as reason from dual; +create trigger t7_proc_bi before insert on t7_proc for each row +call audit_proc(NEW.a); +create trigger t7_func_bi before insert on t7_func for each row +insert into t7_audit values (NULL, NEW.a, audit_func()); +create trigger t7_view_bi before insert on t7_view for each row +insert into t7_audit values (NULL, NEW.a, (select reason from audit_view)); +create trigger t7_table_bi before insert on t7_table for each row +insert into t7_dependent_table values (NULL, NEW.a, "dependent table"); +create trigger t7_table_trigger_bi before insert on t7_dependent_table +for each row set NEW.reason="trigger v1"; +prepare stmt_proc from 'insert into t7_proc(a) value (?)'; +set @val=101; +execute stmt_proc using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +set @val=102; +execute stmt_proc using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop procedure audit_proc; +create procedure audit_proc(a int) +insert into t7_audit values (NULL, a, "proc v2"); +set @val=103; +execute stmt_proc using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +set @val=104; +execute stmt_proc using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +prepare stmt_func from 'insert into t7_func(a) value (?)'; +set @val=201; +execute stmt_func using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +set @val=202; +execute stmt_func using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop function audit_func; +create function audit_func() returns varchar(50) +return "func v2"; +set @val=203; +execute stmt_func using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +set @val=204; +execute stmt_func using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +prepare stmt_view from 'insert into t7_view(a) value (?)'; +set @val=301; +execute stmt_view using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +set @val=302; +execute stmt_view using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop view audit_view; +create view audit_view as select "view v2" as reason from dual; +set @val=303; +execute stmt_view using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +set @val=304; +execute stmt_view using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +prepare stmt_table from 'insert into t7_table(a) value (?)'; +set @val=401; +execute stmt_table using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +set @val=402; +execute stmt_table using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +alter table t7_dependent_table add column comments varchar(100) default NULL; +set @val=403; +execute stmt_table using @val; +ERROR 21S01: Column count doesn't match value count at row 1 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +2 +set @val=404; +execute stmt_table using @val; +ERROR 21S01: Column count doesn't match value count at row 1 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +2 +alter table t7_dependent_table drop column comments; +set @val=405; +execute stmt_table using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +3 +set @val=406; +execute stmt_table using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +3 +prepare stmt_table_trigger from 'insert into t7_table(a) value (?)'; +set @val=501; +execute stmt_table_trigger using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +3 +set @val=502; +execute stmt_table_trigger using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +3 +drop trigger t7_table_trigger_bi; +create trigger t7_table_trigger_bi before insert on t7_dependent_table +for each row set NEW.reason="trigger v2"; +set @val=503; +execute stmt_table_trigger using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +4 +set @val=504; +execute stmt_table_trigger using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +4 +select * from t7_audit order by new_a; +old_a new_a reason +NULL 101 proc v1 +NULL 102 proc v1 +NULL 103 proc v2 +NULL 104 proc v2 +NULL 201 func v1 +NULL 202 func v1 +NULL 203 func v2 +NULL 204 func v2 +NULL 301 view v1 +NULL 302 view v1 +NULL 303 view v1 +NULL 304 view v1 +select * from t7_dependent_table order by new_a; +old_a new_a reason +NULL 401 trigger v1 +NULL 402 trigger v1 +NULL 405 trigger v1 +NULL 406 trigger v1 +NULL 501 trigger v1 +NULL 502 trigger v1 +NULL 503 trigger v2 +NULL 504 trigger v2 +drop table t7_proc; +drop table t7_func; +drop table t7_view; +drop table t7_table; +drop table t7_dependent_table; +drop table t7_table_trigger; +drop table t7_audit; +drop procedure audit_proc; +drop function audit_func; +drop view audit_view; +===================================================================== +Testing 8: TABLE -> TEMPORARY TABLE transitions +===================================================================== +drop table if exists t8; +SELECT VARIABLE_VALUE from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' +into @base_count ; +create table t8(a int); +prepare stmt from 'select * from t8'; +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop table t8; +create temporary table t8(a int); +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +drop table t8; +===================================================================== +Testing 9: TABLE -> VIEW transitions +===================================================================== +drop table if exists t9; +drop table if exists t9_b; +SELECT VARIABLE_VALUE from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' +into @base_count ; +create table t9(a int); +create table t9_b(a int); +prepare stmt from 'select * from t9'; +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop table t9; +create view t9 as select * from t9_b; +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +drop view t9; +drop table t9_b; +===================================================================== +Testing 10: TEMPORARY TABLE -> NOTHING transitions +===================================================================== +drop temporary table if exists t10; +SELECT VARIABLE_VALUE from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' +into @base_count ; +create temporary table t10(a int); +prepare stmt from 'select * from t10'; +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop temporary table t10; +execute stmt; +ERROR 42S02: Table 'test.t10' doesn't exist +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +ERROR 42S02: Table 'test.t10' doesn't exist +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +===================================================================== +Testing 11: TEMPORARY TABLE -> TABLE transitions +===================================================================== +drop table if exists t11; +drop temporary table if exists t11; +SELECT VARIABLE_VALUE from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' +into @base_count ; +create table t11(a int); +insert into t11(a) value (1); +create temporary table t11(a int); +prepare stmt from 'select * from t11'; +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop temporary table t11; +execute stmt; +a +1 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +execute stmt; +a +1 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +select * from t11; +a +1 +drop table t11; +===================================================================== +Testing 12: TEMPORARY TABLE -> TEMPORARY TABLE (DDL) transitions +===================================================================== +drop temporary table if exists t12; +SELECT VARIABLE_VALUE from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' +into @base_count ; +create temporary table t12(a int); +prepare stmt from 'select * from t12'; +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop temporary table t12; +create temporary table t12(a int, b int); +execute stmt; +a b +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +execute stmt; +a b +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +select * from t12; +a b +drop table t12; +===================================================================== +Testing 13: TEMPORARY TABLE -> VIEW transitions +===================================================================== +drop temporary table if exists t13; +drop table if exists t13_b; +SELECT VARIABLE_VALUE from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' +into @base_count ; +create temporary table t13(a int); +create table t13_b(a int); +prepare stmt from 'select * from t13'; +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop temporary table t13; +create view t13 as select * from t13_b; +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +drop view t13; +drop table t13_b; +===================================================================== +Testing 14: VIEW -> NOTHING transitions +===================================================================== +drop view if exists t14; +drop table if exists t14_b; +SELECT VARIABLE_VALUE from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' +into @base_count ; +create table t14_b(a int); +create view t14 as select * from t14_b; +prepare stmt from 'select * from t14'; +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop view t14; +execute stmt; +ERROR 42S02: Table 'test.t14' doesn't exist +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +execute stmt; +ERROR 42S02: Table 'test.t14' doesn't exist +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +drop table t14_b; +===================================================================== +Testing 15: VIEW -> TABLE transitions +===================================================================== +drop view if exists t15; +drop table if exists t15_b; +SELECT VARIABLE_VALUE from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' +into @base_count ; +create table t15_b(a int); +create view t15 as select * from t15_b; +prepare stmt from 'select * from t15'; +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop view t15; +create table t15(a int); +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +drop table t15_b; +drop table t15; +===================================================================== +Testing 16: VIEW -> TEMPORARY TABLE transitions +===================================================================== +drop view if exists t16; +drop table if exists t16_b; +SELECT VARIABLE_VALUE from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' +into @base_count ; +create table t16_b(a int); +create view t16 as select * from t16_b; +prepare stmt from 'select * from t16'; +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop view t16; +create temporary table t16(a int); +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +drop table t16_b; +drop temporary table t16; +===================================================================== +Testing 17: VIEW -> VIEW (DDL) transitions +===================================================================== +drop view if exists t17; +drop table if exists t17_b; +SELECT VARIABLE_VALUE from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' +into @base_count ; +create table t17_b(a int); +insert into t17_b values (10), (20), (30); +create view t17 as select a, 2*a as b, 3*a as c from t17_b; +select * from t17; +a b c +10 20 30 +20 40 60 +30 60 90 +prepare stmt from 'select * from t17'; +execute stmt; +a b c +10 20 30 +20 40 60 +30 60 90 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +a b c +10 20 30 +20 40 60 +30 60 90 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop view t17; +create view t17 as select a, 2*a as b, 10*a as c from t17_b; +select * from t17; +a b c +10 20 100 +20 40 200 +30 60 300 +execute stmt; +a b c +10 20 100 +20 40 200 +30 60 300 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +execute stmt; +a b c +10 20 100 +20 40 200 +30 60 300 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +drop table t17_b; +drop view t17; +===================================================================== +Testing 18: VIEW -> VIEW (VIEW dependencies) transitions +===================================================================== +drop table if exists t18; +drop table if exists t18_dependent_table; +drop view if exists t18_func; +drop view if exists t18_view; +drop view if exists t18_table; +drop function if exists view_func; +drop view if exists view_view; +SELECT VARIABLE_VALUE from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' +into @base_count ; +create table t18(a int); +insert into t18 values (1), (2), (3); +create function view_func(x int) returns int +return x+1; +create view view_view as select "view v1" as reason from dual; +create table t18_dependent_table(a int); +create view t18_func as select a, view_func(a) as b from t18; +create view t18_view as select a, reason as b from t18, view_view; +create view t18_table as select * from t18; +prepare stmt_func from 'select * from t18_func'; +execute stmt_func; +a b +1 2 +2 3 +3 4 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt_func; +a b +1 2 +2 3 +3 4 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop function view_func; +create function view_func(x int) returns int +return x*x; +execute stmt_func; +a b +1 1 +2 4 +3 9 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt_func; +a b +1 1 +2 4 +3 9 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +prepare stmt_view from 'select * from t18_view'; +execute stmt_view; +a b +1 view v1 +2 view v1 +3 view v1 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt_view; +a b +1 view v1 +2 view v1 +3 view v1 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop view view_view; +create view view_view as select "view v2" as reason from dual; +execute stmt_view; +a b +1 view v2 +2 view v2 +3 view v2 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +execute stmt_view; +a b +1 view v2 +2 view v2 +3 view v2 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +prepare stmt_table from 'select * from t18_table'; +execute stmt_table; +a +1 +2 +3 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +execute stmt_table; +a +1 +2 +3 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +alter table t18 add column comments varchar(50) default NULL; +execute stmt_table; +a +1 +2 +3 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +2 +execute stmt_table; +a +1 +2 +3 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +2 +drop table t18; +drop table t18_dependent_table; +drop view t18_func; +drop view t18_view; +drop view t18_table; +drop function view_func; +drop view view_view; +===================================================================== +Testing 19: Special tables (INFORMATION_SCHEMA) +===================================================================== +drop procedure if exists proc_19; +SELECT VARIABLE_VALUE from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' +into @base_count ; +prepare stmt from +'select ROUTINE_SCHEMA, ROUTINE_NAME, ROUTINE_TYPE + from INFORMATION_SCHEMA.ROUTINES where + routine_name=\'proc_19\''; +create procedure proc_19() select "hi there"; +execute stmt; +ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE +test proc_19 PROCEDURE +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE +test proc_19 PROCEDURE +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop procedure proc_19; +create procedure proc_19() select "hi there, again"; +execute stmt; +ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE +test proc_19 PROCEDURE +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE +test proc_19 PROCEDURE +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop procedure proc_19; +===================================================================== +Testing 20: Special tables (log tables) +===================================================================== +SELECT VARIABLE_VALUE from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' +into @base_count ; +prepare stmt from +'select * from mysql.general_log where argument=\'IMPOSSIBLE QUERY STRING\''; +execute stmt; +event_time user_host thread_id server_id command_type argument +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +event_time user_host thread_id server_id command_type argument +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +event_time user_host thread_id server_id command_type argument +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +event_time user_host thread_id server_id command_type argument +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +===================================================================== +Testing 21: Special tables (system tables) +===================================================================== +drop procedure if exists proc_21; +SELECT VARIABLE_VALUE from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' +into @base_count ; +prepare stmt from +'select type, db, name from mysql.proc where name=\'proc_21\''; +create procedure proc_21() select "hi there"; +execute stmt; +type db name +PROCEDURE test proc_21 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +type db name +PROCEDURE test proc_21 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop procedure proc_21; +create procedure proc_21() select "hi there, again"; +execute stmt; +type db name +PROCEDURE test proc_21 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +type db name +PROCEDURE test proc_21 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop procedure proc_21; +===================================================================== +Testing 22: Special tables (views temp tables) +===================================================================== +drop table if exists t22_b; +drop view if exists t22; +SELECT VARIABLE_VALUE from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' +into @base_count ; +create table t22_b(a int); +create algorithm=temptable view t22 as select a*a as a2 from t22_b; +show create view t22; +View Create View character_set_client collation_connection +t22 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `t22` AS select (`t22_b`.`a` * `t22_b`.`a`) AS `a2` from `t22_b` latin1 latin1_swedish_ci +prepare stmt from 'select * from t22'; +insert into t22_b values (1), (2), (3); +execute stmt; +a2 +1 +4 +9 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +a2 +1 +4 +9 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +insert into t22_b values (4), (5), (6); +execute stmt; +a2 +1 +4 +9 +16 +25 +36 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +a2 +1 +4 +9 +16 +25 +36 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop table t22_b; +drop view t22; +===================================================================== +Testing 23: Special tables (internal join tables) +===================================================================== +drop table if exists t23_a; +drop table if exists t23_b; +SELECT VARIABLE_VALUE from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' +into @base_count ; +create table t23_a(a int); +create table t23_b(b int); +prepare stmt from 'select * from t23_a join t23_b'; +insert into t23_a values (1), (2), (3); +insert into t23_b values (10), (20), (30); +execute stmt; +a b +1 10 +2 10 +3 10 +1 20 +2 20 +3 20 +1 30 +2 30 +3 30 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +a b +1 10 +2 10 +3 10 +1 20 +2 20 +3 20 +1 30 +2 30 +3 30 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +insert into t23_a values (4); +insert into t23_b values (40); +execute stmt; +a b +1 10 +2 10 +3 10 +4 10 +1 20 +2 20 +3 20 +4 20 +1 30 +2 30 +3 30 +4 30 +1 40 +2 40 +3 40 +4 40 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +a b +1 10 +2 10 +3 10 +4 10 +1 20 +2 20 +3 20 +4 20 +1 30 +2 30 +3 30 +4 30 +1 40 +2 40 +3 40 +4 40 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop table t23_a; +drop table t23_b; +===================================================================== +Testing 24: Special statements +===================================================================== +drop table if exists t24_alter; +SELECT VARIABLE_VALUE from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' +into @base_count ; +create table t24_alter(a int); +prepare stmt from 'alter table t24_alter add column b int'; +execute stmt; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop table t24_alter; +create table t24_alter(a1 int, a2 int); +execute stmt; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +alter table t24_alter drop column b; +execute stmt; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +alter table t24_alter drop column b; +execute stmt; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop table t24_alter; +drop table if exists t24_repair; +create table t24_repair(a int); +insert into t24_repair values (1), (2), (3); +prepare stmt from 'repair table t24_repair'; +execute stmt; +Table Op Msg_type Msg_text +test.t24_repair repair status OK +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop table t24_repair; +create table t24_repair(a1 int, a2 int); +insert into t24_repair values (1, 10), (2, 20), (3, 30); +execute stmt; +Table Op Msg_type Msg_text +test.t24_repair repair status OK +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +alter table t24_repair add column b varchar(50) default NULL; +execute stmt; +Table Op Msg_type Msg_text +test.t24_repair repair status OK +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +alter table t24_repair drop column b; +execute stmt; +Table Op Msg_type Msg_text +test.t24_repair repair status OK +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop table t24_repair; +drop table if exists t24_analyze; +create table t24_analyze(a int); +insert into t24_analyze values (1), (2), (3); +prepare stmt from 'analyze table t24_analyze'; +execute stmt; +Table Op Msg_type Msg_text +test.t24_analyze analyze status OK +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop table t24_analyze; +create table t24_analyze(a1 int, a2 int); +insert into t24_analyze values (1, 10), (2, 20), (3, 30); +execute stmt; +Table Op Msg_type Msg_text +test.t24_analyze analyze status OK +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +alter table t24_analyze add column b varchar(50) default NULL; +execute stmt; +Table Op Msg_type Msg_text +test.t24_analyze analyze status OK +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +alter table t24_analyze drop column b; +execute stmt; +Table Op Msg_type Msg_text +test.t24_analyze analyze status OK +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop table t24_analyze; +drop table if exists t24_optimize; +create table t24_optimize(a int); +insert into t24_optimize values (1), (2), (3); +prepare stmt from 'optimize table t24_optimize'; +execute stmt; +Table Op Msg_type Msg_text +test.t24_optimize optimize status OK +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop table t24_optimize; +create table t24_optimize(a1 int, a2 int); +insert into t24_optimize values (1, 10), (2, 20), (3, 30); +execute stmt; +Table Op Msg_type Msg_text +test.t24_optimize optimize status OK +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +alter table t24_optimize add column b varchar(50) default NULL; +execute stmt; +Table Op Msg_type Msg_text +test.t24_optimize optimize status OK +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +alter table t24_optimize drop column b; +execute stmt; +Table Op Msg_type Msg_text +test.t24_optimize optimize status OK +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop table t24_optimize; +drop procedure if exists changing_proc; +prepare stmt from 'show create procedure changing_proc'; +execute stmt; +ERROR 42000: PROCEDURE changing_proc does not exist +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +ERROR 42000: PROCEDURE changing_proc does not exist +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +create procedure changing_proc() begin end; +execute stmt; +Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation +changing_proc CREATE DEFINER=`root`@`localhost` PROCEDURE `changing_proc`() +begin end latin1 latin1_swedish_ci latin1_swedish_ci +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation +changing_proc CREATE DEFINER=`root`@`localhost` PROCEDURE `changing_proc`() +begin end latin1 latin1_swedish_ci latin1_swedish_ci +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop procedure changing_proc; +create procedure changing_proc(x int, y int) begin end; +execute stmt; +Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation +changing_proc CREATE DEFINER=`root`@`localhost` PROCEDURE `changing_proc`(x int, y int) +begin end latin1 latin1_swedish_ci latin1_swedish_ci +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation +changing_proc CREATE DEFINER=`root`@`localhost` PROCEDURE `changing_proc`(x int, y int) +begin end latin1 latin1_swedish_ci latin1_swedish_ci +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop procedure changing_proc; +execute stmt; +ERROR 42000: PROCEDURE changing_proc does not exist +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +ERROR 42000: PROCEDURE changing_proc does not exist +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop function if exists changing_func; +prepare stmt from 'show create function changing_func'; +execute stmt; +ERROR 42000: FUNCTION changing_func does not exist +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +ERROR 42000: FUNCTION changing_func does not exist +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +create function changing_func() returns int return 0; +execute stmt; +Function sql_mode Create Function character_set_client collation_connection Database Collation +changing_func CREATE DEFINER=`root`@`localhost` FUNCTION `changing_func`() RETURNS int(11) +return 0 latin1 latin1_swedish_ci latin1_swedish_ci +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +Function sql_mode Create Function character_set_client collation_connection Database Collation +changing_func CREATE DEFINER=`root`@`localhost` FUNCTION `changing_func`() RETURNS int(11) +return 0 latin1 latin1_swedish_ci latin1_swedish_ci +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop function changing_func; +create function changing_func(x int, y int) returns int return x+y; +execute stmt; +Function sql_mode Create Function character_set_client collation_connection Database Collation +changing_func CREATE DEFINER=`root`@`localhost` FUNCTION `changing_func`(x int, y int) RETURNS int(11) +return x+y latin1 latin1_swedish_ci latin1_swedish_ci +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +Function sql_mode Create Function character_set_client collation_connection Database Collation +changing_func CREATE DEFINER=`root`@`localhost` FUNCTION `changing_func`(x int, y int) RETURNS int(11) +return x+y latin1 latin1_swedish_ci latin1_swedish_ci +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop function changing_func; +execute stmt; +ERROR 42000: FUNCTION changing_func does not exist +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +ERROR 42000: FUNCTION changing_func does not exist +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop table if exists t24_trigger; +create table t24_trigger(a int); +prepare stmt from 'show create trigger t24_bi;'; +execute stmt; +ERROR HY000: Trigger does not exist +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +ERROR HY000: Trigger does not exist +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +create trigger t24_bi before insert on t24_trigger for each row +begin +set @message= "t24_bi"; +end +$$ +execute stmt; +Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation +t24_bi CREATE DEFINER=`root`@`localhost` trigger t24_bi before insert on t24_trigger for each row +begin +set @message= "t24_bi"; +end latin1 latin1_swedish_ci latin1_swedish_ci +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation +t24_bi CREATE DEFINER=`root`@`localhost` trigger t24_bi before insert on t24_trigger for each row +begin +set @message= "t24_bi"; +end latin1 latin1_swedish_ci latin1_swedish_ci +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop trigger t24_bi; +create trigger t24_bi before insert on t24_trigger for each row +begin +set @message= "t24_bi (2)"; +end +$$ +execute stmt; +Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation +t24_bi CREATE DEFINER=`root`@`localhost` trigger t24_bi before insert on t24_trigger for each row +begin +set @message= "t24_bi (2)"; +end latin1 latin1_swedish_ci latin1_swedish_ci +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation +t24_bi CREATE DEFINER=`root`@`localhost` trigger t24_bi before insert on t24_trigger for each row +begin +set @message= "t24_bi (2)"; +end latin1 latin1_swedish_ci latin1_swedish_ci +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop trigger t24_bi; +execute stmt; +ERROR HY000: Trigger does not exist +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +ERROR HY000: Trigger does not exist +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop table t24_trigger; +===================================================================== +Testing 25: Testing the strength of TABLE_SHARE version +===================================================================== +drop table if exists t25_num_col; +SELECT VARIABLE_VALUE from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' +into @base_count ; +create table t25_num_col(a int); +prepare stmt from 'select * from t25_num_col'; +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +alter table t25_num_col add column b varchar(50) default NULL; +execute stmt; +a b +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +execute stmt; +a b +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +drop table t25_num_col; +drop table if exists t25_col_name; +create table t25_col_name(a int); +prepare stmt from 'select * from t25_col_name'; +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +alter table t25_col_name change a b int; +execute stmt; +b +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +2 +execute stmt; +b +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +2 +drop table t25_col_name; +drop table if exists t25_col_type; +create table t25_col_type(a int); +prepare stmt from 'select * from t25_col_type'; +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +2 +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +2 +alter table t25_col_type change a a varchar(10); +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +3 +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +3 +drop table t25_col_type; +drop table if exists t25_col_type_length; +create table t25_col_type_length(a varchar(10)); +prepare stmt from 'select * from t25_col_type_length'; +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +3 +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +3 +alter table t25_col_type_length change a a varchar(20); +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +4 +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +4 +drop table t25_col_type_length; +drop table if exists t25_col_null; +create table t25_col_null(a varchar(10)); +prepare stmt from 'select * from t25_col_null'; +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +4 +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +4 +alter table t25_col_null change a a varchar(10) NOT NULL; +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +5 +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +5 +drop table t25_col_null; +drop table if exists t25_col_default; +create table t25_col_default(a int, b int DEFAULT 10); +prepare stmt from 'insert into t25_col_default(a) values (?)'; +set @val=1; +execute stmt using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +5 +set @val=2; +execute stmt using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +5 +alter table t25_col_default change b b int DEFAULT 20; +set @val=3; +execute stmt using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +5 +set @val=4; +execute stmt using @val; +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +5 +select * from t25_col_default; +a b +1 10 +2 10 +3 20 +4 20 +drop table t25_col_default; +drop table if exists t25_index; +create table t25_index(a varchar(10)); +prepare stmt from 'select * from t25_index'; +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +5 +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +5 +create index i1 on t25_index(a); +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +6 +execute stmt; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +6 +drop table t25_index; +drop table if exists t25_index_unique; +create table t25_index_unique(a varchar(10), b varchar(10)); +create index i1 on t25_index_unique(a, b); +show create table t25_index_unique; +Table Create Table +t25_index_unique CREATE TABLE `t25_index_unique` ( + `a` varchar(10) DEFAULT NULL, + `b` varchar(10) DEFAULT NULL, + KEY `i1` (`a`,`b`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +prepare stmt from 'select * from t25_index_unique'; +execute stmt; +a b +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +6 +execute stmt; +a b +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +6 +alter table t25_index_unique drop index i1; +create unique index i1 on t25_index_unique(a, b); +show create table t25_index_unique; +Table Create Table +t25_index_unique CREATE TABLE `t25_index_unique` ( + `a` varchar(10) DEFAULT NULL, + `b` varchar(10) DEFAULT NULL, + UNIQUE KEY `i1` (`a`,`b`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +execute stmt; +a b +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +7 +execute stmt; +a b +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +7 +drop table t25_index_unique; +===================================================================== +Testing reported bugs +===================================================================== +drop table if exists table_12093; +drop function if exists func_12093; +drop function if exists func_12093_unrelated; +drop procedure if exists proc_12093; +SELECT VARIABLE_VALUE from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' +into @base_count ; +create table table_12093(a int); +create function func_12093() +returns int +begin +return (select count(*) from table_12093); +end// +create procedure proc_12093(a int) +begin +select * from table_12093; +end// +create function func_12093_unrelated() returns int return 2; +create procedure proc_12093_unrelated() begin end; +prepare stmt_sf from 'select func_12093();'; +prepare stmt_sp from 'call proc_12093(func_12093())'; +execute stmt_sf; +func_12093() +0 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt_sp; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop function func_12093_unrelated; +drop procedure proc_12093_unrelated; +execute stmt_sf; +func_12093() +0 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt_sp; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt_sf; +func_12093() +0 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt_sp; +a +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +deallocate prepare stmt_sf; +deallocate prepare stmt_sp; +drop table table_12093; +drop function func_12093; +drop procedure proc_12093; +drop function if exists func_21294; +SELECT VARIABLE_VALUE from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' +into @base_count ; +create function func_21294() returns int return 10; +prepare stmt from "select func_21294()"; +execute stmt; +func_21294() +10 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop function func_21294; +create function func_21294() returns int return 10; +execute stmt; +func_21294() +10 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop function func_21294; +create function func_21294() returns int return 20; +execute stmt; +func_21294() +20 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +deallocate prepare stmt; +drop function func_21294; +drop table if exists t_27420_100; +drop table if exists t_27420_101; +drop view if exists v_27420; +SELECT VARIABLE_VALUE from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' +into @base_count ; +create table t_27420_100(a int); +insert into t_27420_100 values (1), (2); +create table t_27420_101(a int); +insert into t_27420_101 values (1), (2); +create view v_27420 as select t_27420_100.a X, t_27420_101.a Y +from t_27420_100, t_27420_101 +where t_27420_100.a=t_27420_101.a; +prepare stmt from 'select * from v_27420'; +execute stmt; +X Y +1 1 +2 2 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop view v_27420; +create table v_27420(X int, Y int); +execute stmt; +X Y +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +drop table v_27420; +create table v_27420 (a int, b int, filler char(200)); +execute stmt; +a b filler +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +2 +deallocate prepare stmt; +drop table t_27420_100; +drop table t_27420_101; +drop table v_27420; +drop table if exists t_27430_1; +drop table if exists t_27430_2; +SELECT VARIABLE_VALUE from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' +into @base_count ; +create table t_27430_1 (a int not null, oref int not null, key(a)); +insert into t_27430_1 values +(1, 1), +(1, 1234), +(2, 3), +(2, 1234), +(3, 1234); +create table t_27430_2 (a int not null, oref int not null); +insert into t_27430_2 values +(1, 1), +(2, 2), +(1234, 3), +(1234, 4); +prepare stmt from +'select oref, a, a in (select a from t_27430_1 where oref=t_27430_2.oref) Z from t_27430_2'; +execute stmt; +oref a Z +1 1 1 +2 2 0 +3 1234 0 +4 1234 0 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +oref a Z +1 1 1 +2 2 0 +3 1234 0 +4 1234 0 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop table t_27430_1, t_27430_2; +create table t_27430_1 (a int, oref int, key(a)); +insert into t_27430_1 values +(1, 1), +(1, NULL), +(2, 3), +(2, NULL), +(3, NULL); +create table t_27430_2 (a int, oref int); +insert into t_27430_2 values +(1, 1), +(2,2), +(NULL, 3), +(NULL, 4); +execute stmt; +oref a Z +1 1 1 +2 2 0 +3 NULL NULL +4 NULL 0 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +execute stmt; +oref a Z +1 1 1 +2 2 0 +3 NULL NULL +4 NULL 0 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +deallocate prepare stmt; +drop table t_27430_1; +drop table t_27430_2; +drop table if exists t_27690_1; +drop view if exists v_27690_1; +drop table if exists v_27690_2; +SELECT VARIABLE_VALUE from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' +into @base_count ; +create table t_27690_1 (a int, b int); +insert into t_27690_1 values (1,1),(2,2); +create table v_27690_1 as select * from t_27690_1; +create table v_27690_2 as select * from t_27690_1; +prepare stmt from 'select * from v_27690_1, v_27690_2'; +execute stmt; +a b a b +1 1 1 1 +2 2 1 1 +1 1 2 2 +2 2 2 2 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +a b a b +1 1 1 1 +2 2 1 1 +1 1 2 2 +2 2 2 2 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +drop table v_27690_1; +execute stmt; +ERROR 42S02: Table 'test.v_27690_1' doesn't exist +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +execute stmt; +ERROR 42S02: Table 'test.v_27690_1' doesn't exist +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +0 +create view v_27690_1 as select A.a, A.b from t_27690_1 A, t_27690_1 B; +execute stmt; +a b a b +1 1 1 1 +2 2 1 1 +1 1 1 1 +2 2 1 1 +1 1 2 2 +2 2 2 2 +1 1 2 2 +2 2 2 2 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +execute stmt; +a b a b +1 1 1 1 +2 2 1 1 +1 1 1 1 +2 2 1 1 +1 1 2 2 +2 2 2 2 +1 1 2 2 +2 2 2 2 +SELECT VARIABLE_VALUE - @base_count AS REPREPARED from +INFORMATION_SCHEMA.SESSION_STATUS where variable_name='COM_STMT_REPREPARE' ; +REPREPARED +1 +deallocate prepare stmt; +drop table t_27690_1; +drop view v_27690_1; +drop table v_27690_2; diff --git a/mysql-test/r/range.result b/mysql-test/r/range.result index 108264b3bf2..92db6d8429f 100644 --- a/mysql-test/r/range.result +++ b/mysql-test/r/range.result @@ -1135,6 +1135,24 @@ item started price A1 2005-11-01 08:00:00 1000.000 A1 2005-11-15 00:00:00 2000.000 DROP TABLE t1; + +BUG#32198 "Comparison of DATE with DATETIME still not using indexes correctly" + +CREATE TABLE t1 ( +id int(11) NOT NULL auto_increment, +dateval date default NULL, +PRIMARY KEY (id), +KEY dateval (dateval) +) AUTO_INCREMENT=173; +INSERT INTO t1 VALUES +(1,'2007-01-01'),(2,'2007-01-02'),(3,'2007-01-03'),(4,'2007-01-04'), +(5,'2007-01-05'),(6,'2007-01-06'),(7,'2007-01-07'),(8,'2007-01-08'), +(9,'2007-01-09'),(10,'2007-01-10'),(11,'2007-01-11'); +This must use range access: +explain select * from t1 where dateval >= '2007-01-01 00:00:00' and dateval <= '2007-01-02 23:59:59'; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 range dateval dateval 4 NULL 2 Using where +drop table t1; 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)); diff --git a/mysql-test/r/read_only.result b/mysql-test/r/read_only.result index f270f1ed5ad..cf81566f4e5 100644 --- a/mysql-test/r/read_only.result +++ b/mysql-test/r/read_only.result @@ -97,3 +97,31 @@ Note 1051 Unknown table 'ttt' set global read_only=0; drop table t1,t2; drop user test@localhost; +# +# Bug #27440 read_only allows create and drop database +# +set global read_only= 1; +drop database if exists mysqltest_db1; +drop database if exists mysqltest_db2; +delete from mysql.user where User like 'mysqltest_%'; +delete from mysql.db where User like 'mysqltest_%'; +delete from mysql.tables_priv where User like 'mysqltest_%'; +delete from mysql.columns_priv where User like 'mysqltest_%'; +flush privileges; +grant all on mysqltest_db2.* to `mysqltest_u1`@`%`; +create database mysqltest_db1; +grant all on mysqltest_db1.* to `mysqltest_u1`@`%`; +flush privileges; +create database mysqltest_db2; +ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement +show databases like '%mysqltest_db2%'; +Database (%mysqltest_db2%) +drop database mysqltest_db1; +ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement +delete from mysql.user where User like 'mysqltest_%'; +delete from mysql.db where User like 'mysqltest_%'; +delete from mysql.tables_priv where User like 'mysqltest_%'; +delete from mysql.columns_priv where User like 'mysqltest_%'; +flush privileges; +drop database mysqltest_db1; +set global read_only=0; diff --git a/mysql-test/r/select.result b/mysql-test/r/select.result index 719d0926022..2f305f6ec5d 100644 --- a/mysql-test/r/select.result +++ b/mysql-test/r/select.result @@ -4307,6 +4307,12 @@ c3 DROP TABLE t1; DROP TABLE t2; +CREATE TABLE t1 (c1 BIGINT NOT NULL); +INSERT INTO t1 (c1) VALUES (1); +SELECT * FROM t1 WHERE c1 > NULL + 1; +c1 +DROP TABLE t1; + End of 5.0 tests create table t1(a INT, KEY (a)); INSERT INTO t1 VALUES (1),(2),(3),(4),(5); diff --git a/mysql-test/r/status.result b/mysql-test/r/status.result index c95b09597fc..fc78f4ad40f 100644 --- a/mysql-test/r/status.result +++ b/mysql-test/r/status.result @@ -162,3 +162,24 @@ Variable_name Value Com_show_status 8 rnd_diff tmp_table_diff 20 8 +show global status like 'Com%function%'; +Variable_name Value +Com_alter_function 0 +Com_create_function 0 +Com_drop_function 0 +Com_show_function_code 0 +Com_show_function_status 0 +create function f1 (x INTEGER) returns integer +begin +declare ret integer; +set ret = x * 10; +return ret; +end // +drop function f1; +show global status like 'Com%function%'; +Variable_name Value +Com_alter_function 0 +Com_create_function 1 +Com_drop_function 1 +Com_show_function_code 0 +Com_show_function_status 0 diff --git a/mysql-test/r/subselect.result b/mysql-test/r/subselect.result index 25df7a56aa3..d1173fed7f4 100644 --- a/mysql-test/r/subselect.result +++ b/mysql-test/r/subselect.result @@ -77,10 +77,9 @@ ERROR HY000: Incorrect usage of PROCEDURE and subquery SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE((SELECT 1)); ERROR HY000: Incorrect parameters to procedure 'ANALYSE' SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NULL; -a +ERROR 42S22: Unknown column 'a' in 'field list' SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NOT NULL; -a -1 +ERROR 42S22: Unknown column 'a' in 'field list' SELECT (SELECT 1,2,3) = ROW(1,2,3); (SELECT 1,2,3) = ROW(1,2,3) 1 @@ -1307,7 +1306,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra 1 PRIMARY t2 index NULL PRIMARY 4 NULL 4 100.00 Using where; Using index 2 DEPENDENT SUBQUERY t1 unique_subquery PRIMARY PRIMARY 4 func 1 100.00 Using where Warnings: -Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t2` where <in_optimizer>(`test`.`t2`.`a`,<exists>(<primary_index_lookup>(<cache>(`test`.`t2`.`a`) in t1 on PRIMARY where (`test`.`t1`.`b` <> 30)))) +Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t2` where <in_optimizer>(`test`.`t2`.`a`,<exists>(<primary_index_lookup>(<cache>(`test`.`t2`.`a`) in t1 on PRIMARY where ((`test`.`t1`.`b` <> 30) and (<cache>(`test`.`t2`.`a`) = `test`.`t1`.`a`))))) select * from t2 where t2.a in (select t1.a from t1,t3 where t1.b=t3.a); a 2 @@ -1315,8 +1314,8 @@ a explain extended select * from t2 where t2.a in (select t1.a from t1,t3 where t1.b=t3.a); id select_type table type possible_keys key key_len ref rows filtered Extra 1 PRIMARY t2 index NULL PRIMARY 4 NULL 4 100.00 Using where; Using index -2 DEPENDENT SUBQUERY t1 eq_ref PRIMARY PRIMARY 4 func 1 100.00 Using where -2 DEPENDENT SUBQUERY t3 eq_ref PRIMARY PRIMARY 4 test.t1.b 1 100.00 Using where; Using index +2 DEPENDENT SUBQUERY t1 eq_ref PRIMARY PRIMARY 4 func 1 100.00 +2 DEPENDENT SUBQUERY t3 eq_ref PRIMARY PRIMARY 4 test.t1.b 1 100.00 Using index Warnings: Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t2` where <in_optimizer>(`test`.`t2`.`a`,<exists>(select 1 AS `Not_used` from `test`.`t1` join `test`.`t3` where ((`test`.`t3`.`a` = `test`.`t1`.`b`) and (<cache>(`test`.`t2`.`a`) = `test`.`t1`.`a`)))) drop table t1, t2, t3; @@ -1334,9 +1333,9 @@ a explain extended select * from t2 where t2.a in (select a from t1); id select_type table type possible_keys key key_len ref rows filtered Extra 1 PRIMARY t2 index NULL a 5 NULL 4 100.00 Using where; Using index -2 DEPENDENT SUBQUERY t1 index_subquery a a 5 func 1001 100.00 Using index +2 DEPENDENT SUBQUERY t1 index_subquery a a 5 func 1001 100.00 Using index; Using where Warnings: -Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t2` where <in_optimizer>(`test`.`t2`.`a`,<exists>(<index_lookup>(<cache>(`test`.`t2`.`a`) in t1 on a))) +Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t2` where <in_optimizer>(`test`.`t2`.`a`,<exists>(<index_lookup>(<cache>(`test`.`t2`.`a`) in t1 on a where (<cache>(`test`.`t2`.`a`) = `test`.`t1`.`a`)))) select * from t2 where t2.a in (select a from t1 where t1.b <> 30); a 2 @@ -1346,7 +1345,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra 1 PRIMARY t2 index NULL a 5 NULL 4 100.00 Using where; Using index 2 DEPENDENT SUBQUERY t1 index_subquery a a 5 func 1001 100.00 Using index; Using where Warnings: -Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t2` where <in_optimizer>(`test`.`t2`.`a`,<exists>(<index_lookup>(<cache>(`test`.`t2`.`a`) in t1 on a where (`test`.`t1`.`b` <> 30)))) +Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t2` where <in_optimizer>(`test`.`t2`.`a`,<exists>(<index_lookup>(<cache>(`test`.`t2`.`a`) in t1 on a where ((`test`.`t1`.`b` <> 30) and (<cache>(`test`.`t2`.`a`) = `test`.`t1`.`a`))))) select * from t2 where t2.a in (select t1.a from t1,t3 where t1.b=t3.a); a 2 @@ -1373,7 +1372,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra 1 PRIMARY t2 index NULL a 5 NULL 4 100.00 Using where; Using index 2 DEPENDENT SUBQUERY t1 index_subquery a a 5 func 1001 100.00 Using index; Using where Warnings: -Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t2` where <in_optimizer>(`test`.`t2`.`a`,<exists>(<index_lookup>(<cache>(`test`.`t2`.`a`) in t1 on a where (`test`.`t1`.`b` <> 30)))) +Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t2` where <in_optimizer>(`test`.`t2`.`a`,<exists>(<index_lookup>(<cache>(`test`.`t2`.`a`) in t1 on a where ((`test`.`t1`.`b` <> 30) and (<cache>(`test`.`t2`.`a`) = `test`.`t1`.`a`))))) drop table t1, t2, t3; create table t1 (a int, b int); create table t2 (a int, b int); @@ -1737,7 +1736,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra 1 PRIMARY t1 ALL NULL NULL NULL NULL 12 100.00 Using where 2 DEPENDENT SUBQUERY t1 unique_subquery PRIMARY PRIMARY 4 func 1 100.00 Using index; Using where Warnings: -Note 1003 select `test`.`t1`.`id` AS `id`,`test`.`t1`.`text` AS `text` from `test`.`t1` where (not(<in_optimizer>(`test`.`t1`.`id`,<exists>(<primary_index_lookup>(<cache>(`test`.`t1`.`id`) in t1 on PRIMARY where (`test`.`t1`.`id` < 8)))))) +Note 1003 select `test`.`t1`.`id` AS `id`,`test`.`t1`.`text` AS `text` from `test`.`t1` where (not(<in_optimizer>(`test`.`t1`.`id`,<exists>(<primary_index_lookup>(<cache>(`test`.`t1`.`id`) in t1 on PRIMARY where ((`test`.`t1`.`id` < 8) and (<cache>(`test`.`t1`.`id`) = `test`.`t1`.`id`))))))) explain extended select * from t1 as tt where not exists (select id from t1 where id < 8 and (id = tt.id or id is null) having id is not null); id select_type table type possible_keys key key_len ref rows filtered Extra 1 PRIMARY tt ALL NULL NULL NULL NULL 12 100.00 Using where @@ -2304,24 +2303,27 @@ drop table t1,t2; CREATE TABLE t1 ( a int, b int ); CREATE TABLE t2 ( c int, d int ); INSERT INTO t1 VALUES (1,2), (2,3), (3,4); -SELECT a AS abc, b FROM t1 WHERE b = (SELECT MIN(b) FROM t1 WHERE a=abc); +SELECT a AS abc, b FROM t1 outr WHERE b = +(SELECT MIN(b) FROM t1 WHERE a=outr.a); abc b 1 2 2 3 3 4 -INSERT INTO t2 SELECT a AS abc, b FROM t1 WHERE b = (SELECT MIN(b) FROM t1 WHERE a=abc); +INSERT INTO t2 SELECT a AS abc, b FROM t1 outr WHERE b = +(SELECT MIN(b) FROM t1 WHERE a=outr.a); select * from t2; c d 1 2 2 3 3 4 -CREATE TABLE t3 SELECT a AS abc, b FROM t1 WHERE b = (SELECT MIN(b) FROM t1 WHERE a=abc); +CREATE TABLE t3 SELECT a AS abc, b FROM t1 outr WHERE b = +(SELECT MIN(b) FROM t1 WHERE a=outr.a); select * from t3; abc b 1 2 2 3 3 4 -prepare stmt1 from "INSERT INTO t2 SELECT a AS abc, b FROM t1 WHERE b = (SELECT MIN(b) FROM t1 WHERE a=abc);"; +prepare stmt1 from "INSERT INTO t2 SELECT a AS abc, b FROM t1 outr WHERE b = (SELECT MIN(b) FROM t1 WHERE a=outr.a);"; execute stmt1; deallocate prepare stmt1; select * from t2; @@ -2333,7 +2335,7 @@ c d 2 3 3 4 drop table t3; -prepare stmt1 from "CREATE TABLE t3 SELECT a AS abc, b FROM t1 WHERE b = (SELECT MIN(b) FROM t1 WHERE a=abc);"; +prepare stmt1 from "CREATE TABLE t3 SELECT a AS abc, b FROM t1 outr WHERE b = (SELECT MIN(b) FROM t1 WHERE a=outr.a);"; execute stmt1; select * from t3; abc b @@ -2515,7 +2517,9 @@ INSERT INTO t1 VALUES ('ASM','American Samoa','Oceania','Polynesia',199.00,0,680 INSERT INTO t1 VALUES ('ATF','French Southern territories','Antarctica','Antarctica',7780.00,0,0,NULL,0.00,NULL,'Terres australes françaises','Nonmetropolitan Territory of France','Jacques Chirac',NULL,'TF'); INSERT INTO t1 VALUES ('UMI','United States Minor Outlying Islands','Oceania','Micronesia/Caribbean',16.00,0,0,NULL,0.00,NULL,'United States Minor Outlying Islands','Dependent Territory of the US','George W. Bush',NULL,'UM'); /*!40000 ALTER TABLE t1 ENABLE KEYS */; -SELECT DISTINCT Continent AS c FROM t1 WHERE Code <> SOME ( SELECT Code FROM t1 WHERE Continent = c AND Population < 200); +SELECT DISTINCT Continent AS c FROM t1 outr WHERE +Code <> SOME ( SELECT Code FROM t1 WHERE Continent = outr.Continent AND +Population < 200); c Oceania drop table t1; @@ -3558,22 +3562,19 @@ SELECT sql_no_cache * FROM t1 WHERE NOT EXISTS (SELECT i FROM t1) UNION (SELECT i FROM t1) ); -i +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNION +(SELECT i FROM t1) +)' at line 3 SELECT * FROM t1 WHERE NOT EXISTS (((SELECT i FROM t1) UNION (SELECT i FROM t1))); -i +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNION (SELECT i FROM t1)))' at line 2 explain select ((select t11.i from t1 t11) union (select t12.i from t1 t12)) from t1; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'union (select t12.i from t1 t12)) from t1' at line 1 explain select * from t1 where not exists ((select t11.i from t1 t11) union (select t12.i from t1 t12)); -id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY t1 system NULL NULL NULL NULL 0 const row not found -2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL No tables used -3 SUBQUERY NULL NULL NULL NULL NULL NULL NULL no matching row in const table -4 UNION t12 system NULL NULL NULL NULL 0 const row not found -NULL UNION RESULT <union2,4> ALL NULL NULL NULL NULL NULL +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'union (select t12.i from t1 t12))' at line 2 DROP TABLE t1; CREATE TABLE t1 (a VARCHAR(250), b INT auto_increment, PRIMARY KEY (b)); insert into t1 (a) values (FLOOR(rand() * 100)); @@ -3666,6 +3667,8 @@ CREATE TABLE t1 (a int, b int auto_increment, PRIMARY KEY (b)); CREATE TABLE t2 (x int auto_increment, y int, z int, PRIMARY KEY (x), FOREIGN KEY (y) REFERENCES t1 (b)); SET SESSION sort_buffer_size = 32 * 1024; +Warnings: +Warning 1292 Truncated incorrect sort_buffer_size value: '32768' SELECT SQL_NO_CACHE COUNT(*) FROM (SELECT a, b, (SELECT x FROM t2 WHERE y=b ORDER BY z DESC LIMIT 1) c FROM t1) t; @@ -4101,6 +4104,8 @@ INSERT INTO `t1` VALUES ('asdf','2007-02-08 01:11:26'); INSERT INTO `t2` VALUES ('abcdefghijk'); INSERT INTO `t2` VALUES ('asdf'); SET session sort_buffer_size=8192; +Warnings: +Warning 1292 Truncated incorrect sort_buffer_size value: '8192' SELECT (SELECT 1 FROM t1 WHERE t1.a=t2.a ORDER BY t1.b LIMIT 1) AS d1 FROM t2; d1 1 @@ -4199,6 +4204,84 @@ LEFT(t1.a1,1) SELECT a2 FROM t2 WHERE t2.a2 IN (SELECT t1.a1 FROM t1,t3 WHERE t1.b1=t3.a3); a2 DROP TABLE t1, t2, t3; +CREATE TABLE t1 (a CHAR(1), b VARCHAR(10)); +INSERT INTO t1 VALUES ('a', 'aa'); +INSERT INTO t1 VALUES ('a', 'aaa'); +SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1); +a b +CREATE INDEX I1 ON t1 (a); +CREATE INDEX I2 ON t1 (b); +EXPLAIN SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1); +id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where +2 DEPENDENT SUBQUERY t1 index_subquery I1 I1 2 func 2 Using index; Using where +SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1); +a b +CREATE TABLE t2 (a VARCHAR(1), b VARCHAR(10)); +INSERT INTO t2 SELECT * FROM t1; +CREATE INDEX I1 ON t2 (a); +CREATE INDEX I2 ON t2 (b); +EXPLAIN SELECT a,b FROM t2 WHERE b IN (SELECT a FROM t2); +id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where +2 DEPENDENT SUBQUERY t2 index_subquery I1 I1 4 func 2 Using index; Using where +SELECT a,b FROM t2 WHERE b IN (SELECT a FROM t2); +a b +EXPLAIN +SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1 WHERE LENGTH(a)<500); +id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where +2 DEPENDENT SUBQUERY t1 index_subquery I1 I1 2 func 2 Using index; Using where +SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1 WHERE LENGTH(a)<500); +a b +DROP TABLE t1,t2; +CREATE TABLE t1(a INT, b INT); +INSERT INTO t1 VALUES (1,1), (1,2), (2,3), (2,4); +EXPLAIN +SELECT a AS out_a, MIN(b) FROM t1 +WHERE b > (SELECT MIN(b) FROM t1 WHERE a = out_a) +GROUP BY a; +ERROR 42S22: Unknown column 'out_a' in 'where clause' +SELECT a AS out_a, MIN(b) FROM t1 +WHERE b > (SELECT MIN(b) FROM t1 WHERE a = out_a) +GROUP BY a; +ERROR 42S22: Unknown column 'out_a' in 'where clause' +EXPLAIN +SELECT a AS out_a, MIN(b) FROM t1 t1_outer +WHERE b > (SELECT MIN(b) FROM t1 WHERE a = t1_outer.a) +GROUP BY a; +id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY t1_outer ALL NULL NULL NULL NULL 4 Using where; Using temporary; Using filesort +2 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 4 Using where +SELECT a AS out_a, MIN(b) FROM t1 t1_outer +WHERE b > (SELECT MIN(b) FROM t1 WHERE a = t1_outer.a) +GROUP BY a; +out_a MIN(b) +1 2 +2 4 +DROP TABLE t1; +CREATE TABLE t1 (a INT); +CREATE TABLE t2 (a INT); +INSERT INTO t1 VALUES (1),(2); +INSERT INTO t2 VALUES (1),(2); +SELECT 2 FROM t1 WHERE EXISTS ((SELECT 1 FROM t2 WHERE t1.a=t2.a)); +2 +2 +2 +EXPLAIN EXTENDED +SELECT 2 FROM t1 WHERE EXISTS ((SELECT 1 FROM t2 WHERE t1.a=t2.a)); +id select_type table type possible_keys key key_len ref rows filtered Extra +1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00 Using where +2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 2 100.00 Using where +Warnings: +Note 1276 Field or reference 'test.t1.a' of SELECT #2 was resolved in SELECT #1 +Note 1003 select 2 AS `2` from `test`.`t1` where exists(select 1 AS `1` from `test`.`t2` where (`test`.`t1`.`a` = `test`.`t2`.`a`)) +EXPLAIN EXTENDED +SELECT 2 FROM t1 WHERE EXISTS ((SELECT 1 FROM t2 WHERE t1.a=t2.a) UNION +(SELECT 1 FROM t2 WHERE t1.a = t2.a)); +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNION +(SELECT 1 FROM t2 WHERE t1.a = t2.a))' at line 2 +DROP TABLE t1,t2; End of 5.0 tests. CREATE TABLE t1 (a int, b int); INSERT INTO t1 VALUES (2,22),(1,11),(2,22); diff --git a/mysql-test/r/subselect3.result b/mysql-test/r/subselect3.result index 2f3ea31a2a4..ac492caf89a 100644 --- a/mysql-test/r/subselect3.result +++ b/mysql-test/r/subselect3.result @@ -757,6 +757,6 @@ a EXPLAIN SELECT a FROM t1 WHERE a NOT IN (SELECT a FROM t2); id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where -2 DEPENDENT SUBQUERY t2 unique_subquery PRIMARY PRIMARY 4 func 1 Using index +2 DEPENDENT SUBQUERY t2 unique_subquery PRIMARY PRIMARY 4 func 1 Using index; Using where DROP TABLE t1; End of 5.0 tests diff --git a/mysql-test/r/subselect_notembedded.result b/mysql-test/r/subselect_notembedded.result index 44ae055425e..90aadcae398 100644 --- a/mysql-test/r/subselect_notembedded.result +++ b/mysql-test/r/subselect_notembedded.result @@ -1,3 +1,104 @@ purge master logs before (select adddate(current_timestamp(), interval -4 day)); ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'select adddate(current_timestamp(), interval -4 day))' at line 1 purge master logs before adddate(current_timestamp(), interval -4 day); +create table t1(a int,b int,key(a),key(b)); +insert into t1(a,b) values (1,2),(2,1),(2,3),(3,4),(5,4),(5,5), +(6,7),(7,4),(5,3); +select sum(a),a from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 +)group by b limit 1)group by b limit 1 +)group by b limit 1)group by b limit 1)group by b limit 1 +)group by b limit 1)group by b limit 1)group by b limit 1 +)group by b limit 1)group by b limit 1)group by b limit 1) +group by a; +sum(a) a +select sum(a),a from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( +select sum(a) from t1 +)group by b limit 1)group by b limit 1)group by b limit 1 +)group by b limit 1)group by b limit 1)group by b limit 1 +)group by b limit 1)group by b limit 1)group by b limit 1 +)group by b limit 1)group by b limit 1)group by b limit 1 +)group by b limit 1)group by b limit 1)group by b limit 1 +)group by b limit 1)group by b limit 1)group by b limit 1 +)group by b limit 1)group by b limit 1)group by b limit 1 +)group by b limit 1)group by b limit 1)group by b limit 1 +)group by b limit 1)group by b limit 1)group by b limit 1 +)group by b limit 1)group by b limit 1)group by b limit 1) +group by a; +ERROR HY000: Thread stack overrun detected +explain select sum(a),a from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 +)group by b limit 1)group by b limit 1 +)group by b limit 1)group by b limit 1)group by b limit 1 +)group by b limit 1)group by b limit 1)group by b limit 1 +)group by b limit 1)group by b limit 1)group by b limit 1) +group by a; +id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY t1 index a a 5 NULL 9 Using where; Using index +2 SUBQUERY t1 index a b 5 NULL 9 Using where; Using filesort +3 SUBQUERY t1 index a b 5 NULL 9 Using where; Using filesort +4 SUBQUERY t1 index a b 5 NULL 9 Using where; Using filesort +5 SUBQUERY t1 index a b 5 NULL 9 Using where; Using filesort +6 SUBQUERY t1 index a b 5 NULL 9 Using where; Using filesort +7 SUBQUERY t1 index a b 5 NULL 9 Using where; Using filesort +8 SUBQUERY t1 index a b 5 NULL 9 Using where; Using filesort +9 SUBQUERY t1 index a b 5 NULL 9 Using where; Using filesort +10 SUBQUERY t1 index a b 5 NULL 9 Using where; Using filesort +11 SUBQUERY t1 index a b 5 NULL 9 Using where; Using filesort +12 SUBQUERY t1 range a a 5 NULL 1 Using where; Using temporary; Using filesort +13 SUBQUERY t1 index NULL a 5 NULL 9 Using index +explain select sum(a),a from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( +select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( +select sum(a) from t1 +)group by b limit 1)group by b limit 1)group by b limit 1 +)group by b limit 1)group by b limit 1)group by b limit 1 +)group by b limit 1)group by b limit 1)group by b limit 1 +)group by b limit 1)group by b limit 1)group by b limit 1 +)group by b limit 1)group by b limit 1)group by b limit 1 +)group by b limit 1)group by b limit 1)group by b limit 1 +)group by b limit 1)group by b limit 1)group by b limit 1 +)group by b limit 1)group by b limit 1)group by b limit 1 +)group by b limit 1)group by b limit 1)group by b limit 1 +)group by b limit 1)group by b limit 1)group by b limit 1) +group by a; +ERROR HY000: Thread stack overrun detected +drop table t1; diff --git a/mysql-test/r/trigger_notembedded.result b/mysql-test/r/trigger_notembedded.result index d56f83993a6..87e8f68da38 100644 --- a/mysql-test/r/trigger_notembedded.result +++ b/mysql-test/r/trigger_notembedded.result @@ -448,4 +448,18 @@ DROP TABLE t1; DROP DATABASE mysqltest_db1; USE test; End of 5.0 tests. +drop table if exists t1; +create table t1 (i int); +connection: default +lock tables t1 write; +connection: flush +flush tables with read lock;; +connection: default +create trigger t1_bi before insert on t1 for each row begin end; +unlock tables; +connection: flush +unlock tables; +select * from t1; +i +drop table t1; End of 5.1 tests. diff --git a/mysql-test/r/type_bit.result b/mysql-test/r/type_bit.result index dc8ab079ad8..fee0df9ab02 100644 --- a/mysql-test/r/type_bit.result +++ b/mysql-test/r/type_bit.result @@ -269,6 +269,8 @@ a+0 b+0 56 379 68 454 set @@max_length_for_sort_data=0; +Warnings: +Warning 1292 Truncated incorrect max_length_for_sort_data value: '0' select a+0, b+0 from t1 where a > 40 and a < 70 order by 2; a+0 b+0 57 135 @@ -672,6 +674,16 @@ COUNT(DISTINCT b,c) 2 2 DROP TABLE t2; +CREATE TABLE t1(a BIT(13), KEY(a)); +INSERT INTO t1(a) VALUES +(65535),(65525),(65535),(65535),(65535),(65535),(65535),(65535),(65535),(65535); +EXPLAIN SELECT 1 FROM t1 GROUP BY a; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 range NULL a 3 NULL 6 Using index for group-by +SELECT 1 FROM t1 GROUP BY a; +1 +1 +DROP TABLE t1; End of 5.0 tests create table t1(a bit(7)); insert into t1 values(0x40); diff --git a/mysql-test/r/type_bit_innodb.result b/mysql-test/r/type_bit_innodb.result index 97331408b40..a9c3cae1770 100644 --- a/mysql-test/r/type_bit_innodb.result +++ b/mysql-test/r/type_bit_innodb.result @@ -269,6 +269,8 @@ a+0 b+0 56 379 68 454 set @@max_length_for_sort_data=0; +Warnings: +Warning 1292 Truncated incorrect max_length_for_sort_data value: '0' select a+0, b+0 from t1 where a > 40 and a < 70 order by 2; a+0 b+0 57 135 diff --git a/mysql-test/r/type_blob.result b/mysql-test/r/type_blob.result index 869efb535e6..c98c8c5b68c 100644 --- a/mysql-test/r/type_blob.result +++ b/mysql-test/r/type_blob.result @@ -807,4 +807,18 @@ set @@sql_mode='TRADITIONAL'; create table t1 (a text default ''); ERROR 42000: BLOB/TEXT column 'a' can't have a default value set @@sql_mode=''; +CREATE TABLE t (c TEXT CHARSET ASCII); +INSERT INTO t (c) VALUES (REPEAT('1',65537)); +Warnings: +Warning 1265 Data truncated for column 'c' at row 1 +INSERT INTO t (c) VALUES (REPEAT('2',65536)); +Warnings: +Warning 1265 Data truncated for column 'c' at row 1 +INSERT INTO t (c) VALUES (REPEAT('3',65535)); +SELECT LENGTH(c), CHAR_LENGTH(c) FROM t; +LENGTH(c) CHAR_LENGTH(c) +65535 65535 +65535 65535 +65535 65535 +DROP TABLE t; End of 5.0 tests diff --git a/mysql-test/r/type_date.result b/mysql-test/r/type_date.result index 392260edb55..5921991bf50 100644 --- a/mysql-test/r/type_date.result +++ b/mysql-test/r/type_date.result @@ -211,7 +211,6 @@ a Warnings: Warning 1292 Incorrect date value: '0000-00-00' for column 'a' at row 1 Warning 1292 Incorrect date value: '0000-00-00' for column 'a' at row 1 -Warning 1292 Incorrect date value: '0000-00-00' for column 'a' at row 1 SELECT * FROM t2 WHERE a = '0000-00-00'; a 0000-00-00 @@ -223,6 +222,44 @@ INSERT INTO t1 VALUES ('0000-00-00'); ERROR 22007: Incorrect date value: '0000-00-00' for column 'a' at row 1 SET SQL_MODE=DEFAULT; DROP TABLE t1,t2; +CREATE TABLE t1 (a DATE); +CREATE TABLE t2 (a DATE); +CREATE INDEX i ON t1 (a); +INSERT INTO t1 VALUES ('1000-00-00'),('1000-00-00'); +INSERT INTO t2 VALUES ('1000-00-00'),('1000-00-00'); +SELECT * FROM t1 WHERE a = '1000-00-00'; +a +1000-00-00 +1000-00-00 +SELECT * FROM t2 WHERE a = '1000-00-00'; +a +1000-00-00 +1000-00-00 +SET SQL_MODE=TRADITIONAL; +EXPLAIN SELECT * FROM t1 WHERE a = '1000-00-00'; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 ref i i 4 const 1 Using where; Using index +Warnings: +Warning 1292 Incorrect date value: '1000-00-00' for column 'a' at row 1 +Warning 1292 Incorrect date value: '1000-00-00' for column 'a' at row 1 +SELECT * FROM t1 WHERE a = '1000-00-00'; +a +1000-00-00 +1000-00-00 +Warnings: +Warning 1292 Incorrect date value: '1000-00-00' for column 'a' at row 1 +Warning 1292 Incorrect date value: '1000-00-00' for column 'a' at row 1 +SELECT * FROM t2 WHERE a = '1000-00-00'; +a +1000-00-00 +1000-00-00 +Warnings: +Warning 1292 Incorrect date value: '1000-00-00' for column 'a' at row 1 +Warning 1292 Incorrect date value: '1000-00-00' for column 'a' at row 1 +INSERT INTO t1 VALUES ('1000-00-00'); +ERROR 22007: Incorrect date value: '1000-00-00' for column 'a' at row 1 +SET SQL_MODE=DEFAULT; +DROP TABLE t1,t2; End of 5.0 tests create table t1 (a date, primary key (a))engine=memory; insert into t1 values ('0000-01-01'), ('0000-00-01'), ('0001-01-01'); diff --git a/mysql-test/r/type_datetime.result b/mysql-test/r/type_datetime.result index c15deb8b1e5..d485c468a39 100644 --- a/mysql-test/r/type_datetime.result +++ b/mysql-test/r/type_datetime.result @@ -505,6 +505,61 @@ select sum(a) from t1 group by convert(a, datetime); sum(a) NULL drop table t1; +create table t1 (id int(10) not null, cur_date datetime not null); +create table t2 (id int(10) not null, cur_date date not null); +insert into t1 (id, cur_date) values (1, '2007-04-25 18:30:22'); +insert into t2 (id, cur_date) values (1, '2007-04-25'); +explain extended +select * from t1 +where id in (select id from t1 as x1 where (t1.cur_date is null)); +id select_type table type possible_keys key key_len ref rows filtered Extra +1 PRIMARY NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables +2 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE +Warnings: +Note 1276 Field or reference 'test.t1.cur_date' of SELECT #2 was resolved in SELECT #1 +Note 1003 select '1' AS `id`,'2007-04-25 18:30:22' AS `cur_date` from `test`.`t1` where <in_optimizer>('1',<exists>(select 1 AS `Not_used` from `test`.`t1` `x1` where 0)) +select * from t1 +where id in (select id from t1 as x1 where (t1.cur_date is null)); +id cur_date +explain extended +select * from t2 +where id in (select id from t2 as x1 where (t2.cur_date is null)); +id select_type table type possible_keys key key_len ref rows filtered Extra +1 PRIMARY NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables +2 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE +Warnings: +Note 1276 Field or reference 'test.t2.cur_date' of SELECT #2 was resolved in SELECT #1 +Note 1003 select '1' AS `id`,'2007-04-25' AS `cur_date` from `test`.`t2` where <in_optimizer>('1',<exists>(select 1 AS `Not_used` from `test`.`t2` `x1` where 0)) +select * from t2 +where id in (select id from t2 as x1 where (t2.cur_date is null)); +id cur_date +insert into t1 (id, cur_date) values (2, '2007-04-26 18:30:22'); +insert into t2 (id, cur_date) values (2, '2007-04-26'); +explain extended +select * from t1 +where id in (select id from t1 as x1 where (t1.cur_date is null)); +id select_type table type possible_keys key key_len ref rows filtered Extra +1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00 Using where +2 DEPENDENT SUBQUERY x1 ALL NULL NULL NULL NULL 2 100.00 Using where +Warnings: +Note 1276 Field or reference 'test.t1.cur_date' of SELECT #2 was resolved in SELECT #1 +Note 1003 select `test`.`t1`.`id` AS `id`,`test`.`t1`.`cur_date` AS `cur_date` from `test`.`t1` where <in_optimizer>(`test`.`t1`.`id`,<exists>(select 1 AS `Not_used` from `test`.`t1` `x1` where ((`test`.`t1`.`cur_date` = 0) and (<cache>(`test`.`t1`.`id`) = `test`.`x1`.`id`)))) +select * from t1 +where id in (select id from t1 as x1 where (t1.cur_date is null)); +id cur_date +explain extended +select * from t2 +where id in (select id from t2 as x1 where (t2.cur_date is null)); +id select_type table type possible_keys key key_len ref rows filtered Extra +1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00 Using where +2 DEPENDENT SUBQUERY x1 ALL NULL NULL NULL NULL 2 100.00 Using where +Warnings: +Note 1276 Field or reference 'test.t2.cur_date' of SELECT #2 was resolved in SELECT #1 +Note 1003 select `test`.`t2`.`id` AS `id`,`test`.`t2`.`cur_date` AS `cur_date` from `test`.`t2` where <in_optimizer>(`test`.`t2`.`id`,<exists>(select 1 AS `Not_used` from `test`.`t2` `x1` where ((`test`.`t2`.`cur_date` = 0) and (<cache>(`test`.`t2`.`id`) = `test`.`x1`.`id`)))) +select * from t2 +where id in (select id from t2 as x1 where (t2.cur_date is null)); +id cur_date +drop table t1,t2; End of 5.0 tests set @org_mode=@@sql_mode; create table t1 (da date default '1962-03-03 23:33:34', dt datetime default '1962-03-03'); diff --git a/mysql-test/r/udf.result b/mysql-test/r/udf.result index cb5afcf5f17..15410ac2039 100644 --- a/mysql-test/r/udf.result +++ b/mysql-test/r/udf.result @@ -365,4 +365,31 @@ DROP FUNCTION check_const_len; DROP PROCEDURE check_const_len_sp; DROP TRIGGER check_const_len_trigger; DROP TABLE const_len_bug; +CREATE FUNCTION sequence RETURNS INTEGER SONAME "UDF_EXAMPLE_LIB"; +CREATE TABLE t1 (a INT); +CREATE TABLE t2 (a INT PRIMARY KEY); +INSERT INTO t1 VALUES (4),(3),(2),(1); +INSERT INTO t2 SELECT * FROM t1; +SELECT sequence() AS seq, a FROM t1 ORDER BY seq ASC; +seq a +1 4 +2 3 +3 2 +4 1 +SELECT sequence() AS seq, a FROM t1 ORDER BY seq DESC; +seq a +4 1 +3 2 +2 3 +1 4 +SELECT * FROM t1 WHERE a = sequence(); +a +SELECT * FROM t2 WHERE a = sequence(); +a +1 +2 +3 +4 +DROP FUNCTION sequence; +DROP TABLE t1,t2; End of 5.0 tests. diff --git a/mysql-test/r/user_var.result b/mysql-test/r/user_var.result index 431134b03c7..2cd132ce03c 100644 --- a/mysql-test/r/user_var.result +++ b/mysql-test/r/user_var.result @@ -353,6 +353,13 @@ select @a:=f4, count(f4) from t1 group by 1 desc; 2.6 1 1.6 4 drop table t1; +create table t1 (f1 int); +insert into t1 values (2), (1); +select @i := f1 as j from t1 order by 1; +j +1 +2 +drop table t1; create table t1(a int); insert into t1 values(5),(4),(4),(3),(2),(2),(2),(1); set @rownum := 0; diff --git a/mysql-test/r/variables.result b/mysql-test/r/variables.result index bdaec70021b..658a3ffa7a1 100644 --- a/mysql-test/r/variables.result +++ b/mysql-test/r/variables.result @@ -220,7 +220,7 @@ select * from information_schema.global_variables where variable_name like 'myis VARIABLE_NAME VARIABLE_VALUE MYISAM_MAX_SORT_FILE_SIZE 1048576 set GLOBAL myisam_max_sort_file_size=default; -show variables like 'myisam_max_sort_file_size'; +show global variables like 'myisam_max_sort_file_size'; Variable_name Value myisam_max_sort_file_size FILE_SIZE select * from information_schema.session_variables where variable_name like 'myisam_max_sort_file_size'; @@ -279,6 +279,8 @@ NET_READ_TIMEOUT 600 NET_RETRY_COUNT 10 NET_WRITE_TIMEOUT 500 set net_buffer_length=1; +Warnings: +Warning 1292 Truncated incorrect net_buffer_length value: '1' show variables like 'net_buffer_length'; Variable_name Value net_buffer_length 1024 @@ -312,14 +314,14 @@ show variables like '%alloc%'; Variable_name Value query_alloc_block_size 8192 query_prealloc_size 8192 -range_alloc_block_size 2048 +range_alloc_block_size 4096 transaction_alloc_block_size 8192 transaction_prealloc_size 4096 select * from information_schema.session_variables where variable_name like '%alloc%' order by 1; VARIABLE_NAME VARIABLE_VALUE QUERY_ALLOC_BLOCK_SIZE 8192 QUERY_PREALLOC_SIZE 8192 -RANGE_ALLOC_BLOCK_SIZE 2048 +RANGE_ALLOC_BLOCK_SIZE 4096 TRANSACTION_ALLOC_BLOCK_SIZE 8192 TRANSACTION_PREALLOC_SIZE 4096 set @@range_alloc_block_size=1024*16; @@ -351,14 +353,14 @@ show variables like '%alloc%'; Variable_name Value query_alloc_block_size 8192 query_prealloc_size 8192 -range_alloc_block_size 2048 +range_alloc_block_size 4096 transaction_alloc_block_size 8192 transaction_prealloc_size 4096 select * from information_schema.session_variables where variable_name like '%alloc%' order by 1; VARIABLE_NAME VARIABLE_VALUE QUERY_ALLOC_BLOCK_SIZE 8192 QUERY_PREALLOC_SIZE 8192 -RANGE_ALLOC_BLOCK_SIZE 2048 +RANGE_ALLOC_BLOCK_SIZE 4096 TRANSACTION_ALLOC_BLOCK_SIZE 8192 TRANSACTION_PREALLOC_SIZE 4096 SELECT @@version LIKE 'non-existent'; @@ -416,6 +418,8 @@ select @@autocommit, @@big_tables; @@autocommit @@big_tables 1 1 set global binlog_cache_size=100; +Warnings: +Warning 1292 Truncated incorrect binlog_cache_size value: '100' set bulk_insert_buffer_size=100; set character set cp1251_koi8; set character set default; @@ -444,6 +448,8 @@ set global flush_time=100; set insert_id=1; set interactive_timeout=100; set join_buffer_size=100; +Warnings: +Warning 1292 Truncated incorrect join_buffer_size value: '100' set last_insert_id=1; set global local_infile=1; set long_query_time=0.000001; @@ -456,12 +462,20 @@ select @@long_query_time; 100.000001 set low_priority_updates=1; set max_allowed_packet=100; +Warnings: +Warning 1292 Truncated incorrect max_allowed_packet value: '100' set global max_binlog_cache_size=100; +Warnings: +Warning 1292 Truncated incorrect max_binlog_cache_size value: '100' set global max_binlog_size=100; +Warnings: +Warning 1292 Truncated incorrect max_binlog_size value: '100' set global max_connect_errors=100; set global max_connections=100; set global max_delayed_threads=100; set max_heap_table_size=100; +Warnings: +Warning 1292 Truncated incorrect max_heap_table_size value: '100' set max_join_size=100; set max_sort_length=100; set max_tmp_tables=100; @@ -472,17 +486,25 @@ select @@max_user_connections; set global max_write_lock_count=100; set myisam_sort_buffer_size=100; set net_buffer_length=100; +Warnings: +Warning 1292 Truncated incorrect net_buffer_length value: '100' set net_read_timeout=100; set net_write_timeout=100; set global query_cache_limit=100; set global query_cache_size=100; set global query_cache_type=demand; set read_buffer_size=100; +Warnings: +Warning 1292 Truncated incorrect read_buffer_size value: '100' set read_rnd_buffer_size=100; +Warnings: +Warning 1292 Truncated incorrect read_rnd_buffer_size value: '100' set global rpl_recovery_rank=100; set global server_id=100; set global slow_launch_time=100; set sort_buffer_size=100; +Warnings: +Warning 1292 Truncated incorrect sort_buffer_size value: '100' set @@max_sp_recursion_depth=10; select @@max_sp_recursion_depth; @@max_sp_recursion_depth @@ -522,6 +544,8 @@ set storage_engine=myisam; set global thread_cache_size=100; set timestamp=1, timestamp=default; set tmp_table_size=100; +Warnings: +Warning 1292 Truncated incorrect tmp_table_size value: '100' set tx_isolation="READ-COMMITTED"; set wait_timeout=100; set log_warnings=1; @@ -691,6 +715,8 @@ SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME LIKE 'MYI VARIABLE_NAME VARIABLE_VALUE MYISAM_DATA_POINTER_SIZE 7 SET GLOBAL table_open_cache=-1; +Warnings: +Warning 1292 Truncated incorrect table_open_cache value: '0' SHOW VARIABLES LIKE 'table_open_cache'; Variable_name Value table_open_cache 1 diff --git a/mysql-test/r/windows.result b/mysql-test/r/windows.result index c97d3dd8867..e58a891838a 100644 --- a/mysql-test/r/windows.result +++ b/mysql-test/r/windows.result @@ -19,6 +19,7 @@ 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 No tables used End of 5.0 tests. +drop procedure if exists proc_1; create procedure proc_1() install plugin my_plug soname '\\root\\some_plugin.dll'; call proc_1(); ERROR HY000: No paths allowed for shared library |