diff options
author | Jon Olav Hauglid <jon.hauglid@oracle.com> | 2010-11-16 10:05:19 +0100 |
---|---|---|
committer | Jon Olav Hauglid <jon.hauglid@oracle.com> | 2010-11-16 10:05:19 +0100 |
commit | 0caa22b145db22b718434566720fb7dea715692c (patch) | |
tree | 7bb909d13afe24120327ea8c3d6aedfc42610685 /mysql-test | |
parent | a3d9a26d3b9ada36d7c57815614027c9fa798002 (diff) | |
parent | d6d16303cd5e2ba623f51a115f12954fe4a0ce2c (diff) | |
download | mariadb-git-0caa22b145db22b718434566720fb7dea715692c.tar.gz |
Merge from mysql-5.5-bugteam to mysql-5.5-runtime
No conflicts
Diffstat (limited to 'mysql-test')
-rw-r--r-- | mysql-test/CMakeLists.txt | 3 | ||||
-rw-r--r-- | mysql-test/collections/default.weekly | 2 | ||||
-rw-r--r-- | mysql-test/r/information_schema-big.result | 4 | ||||
-rw-r--r-- | mysql-test/r/not_embedded_server.result | 29 | ||||
-rw-r--r-- | mysql-test/r/partition.result | 33 | ||||
-rw-r--r-- | mysql-test/r/ps.result | 504 | ||||
-rw-r--r-- | mysql-test/r/variables-big.result | 10 | ||||
-rw-r--r-- | mysql-test/suite/parts/inc/partition_auto_increment.inc | 49 | ||||
-rw-r--r-- | mysql-test/suite/parts/r/partition_auto_increment_blackhole.result | 32 | ||||
-rw-r--r-- | mysql-test/suite/parts/r/partition_auto_increment_innodb.result | 72 | ||||
-rw-r--r-- | mysql-test/suite/parts/r/partition_auto_increment_memory.result | 72 | ||||
-rw-r--r-- | mysql-test/suite/parts/r/partition_auto_increment_myisam.result | 72 | ||||
-rw-r--r-- | mysql-test/t/disabled.def | 5 | ||||
-rw-r--r-- | mysql-test/t/not_embedded_server.test | 54 | ||||
-rw-r--r-- | mysql-test/t/partition.test | 18 | ||||
-rw-r--r-- | mysql-test/t/ps.test | 6 | ||||
-rw-r--r-- | mysql-test/t/variables-big.test | 10 | ||||
-rw-r--r-- | mysql-test/t/wl4435_generated.inc | 588 |
18 files changed, 1551 insertions, 12 deletions
diff --git a/mysql-test/CMakeLists.txt b/mysql-test/CMakeLists.txt index 3c38e5772d0..f18b2ae341c 100644 --- a/mysql-test/CMakeLists.txt +++ b/mysql-test/CMakeLists.txt @@ -53,7 +53,8 @@ IF(UNIX) IF(INSTALL_MYSQLTESTDIR) INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mtr ${CMAKE_CURRENT_BINARY_DIR}/mysql-test-run - DESTINATION ${INSTALL_MYSQLTESTDIR}) + DESTINATION ${INSTALL_MYSQLTESTDIR} + COMPONENT Test) ENDIF() ENDIF() diff --git a/mysql-test/collections/default.weekly b/mysql-test/collections/default.weekly index d874c2f4519..33d13d8edfd 100644 --- a/mysql-test/collections/default.weekly +++ b/mysql-test/collections/default.weekly @@ -1,2 +1,2 @@ perl mysql-test-run.pl --timer --force --comment=1st --experimental=collections/default.experimental 1st -perl mysql-test-run.pl --timer --force --comment=big-tests --experimental=collections/default.experimental --vardir=var-big-tests --big-test --testcase-timeout=60 --suite-timeout=600 parts.part_supported_sql_func_innodb parts.partition_alter1_1_2_innodb parts.partition_alter1_1_2_ndb parts.partition_alter1_1_ndb parts.partition_alter1_2_innodb parts.partition_alter1_2_ndb parts.partition_alter2_1_1_innodb parts.partition_alter2_1_2_innodb parts.partition_alter2_2_2_innodb parts.partition_alter4_innodb main.variables-big rpl_ndb.rpl_truncate_7ndb_2 +perl mysql-test-run.pl --timer --force --comment=big-tests --experimental=collections/default.experimental --vardir=var-big-tests --big-test --testcase-timeout=60 --suite-timeout=600 large_tests.alter_table main.alter_table-big main.archive-big main.count_distinct3 main.create-big main.events_stress main.events_time_zone main.information_schema-big main.log_tables-big main.merge-big main.mysqlbinlog_row_big main.read_many_rows_innodb main.ssl-big main.sum_distinct-big main.type_newdecimal-big main.variables-big parts.part_supported_sql_func_innodb parts.partition_alter1_1_2_innodb parts.partition_alter1_1_2_ndb parts.partition_alter1_1_ndb parts.partition_alter1_2_innodb parts.partition_alter1_2_ndb parts.partition_alter2_1_1_innodb parts.partition_alter2_1_2_innodb parts.partition_alter2_2_2_innodb parts.partition_alter4_innodb rpl_ndb.rpl_truncate_7ndb_2 diff --git a/mysql-test/r/information_schema-big.result b/mysql-test/r/information_schema-big.result index 248b8d606dc..92408c439a5 100644 --- a/mysql-test/r/information_schema-big.result +++ b/mysql-test/r/information_schema-big.result @@ -30,6 +30,7 @@ FILES TABLE_SCHEMA GLOBAL_STATUS VARIABLE_NAME GLOBAL_VARIABLES VARIABLE_NAME KEY_COLUMN_USAGE CONSTRAINT_SCHEMA +PARAMETERS SPECIFIC_SCHEMA PARTITIONS TABLE_SCHEMA PLUGINS PLUGIN_NAME PROCESSLIST ID @@ -42,6 +43,7 @@ SESSION_STATUS VARIABLE_NAME SESSION_VARIABLES VARIABLE_NAME STATISTICS TABLE_SCHEMA TABLES TABLE_SCHEMA +TABLESPACES TABLESPACE_NAME TABLE_CONSTRAINTS CONSTRAINT_SCHEMA TABLE_PRIVILEGES TABLE_SCHEMA TRIGGERS TRIGGER_SCHEMA @@ -74,6 +76,7 @@ FILES TABLE_SCHEMA GLOBAL_STATUS VARIABLE_NAME GLOBAL_VARIABLES VARIABLE_NAME KEY_COLUMN_USAGE CONSTRAINT_SCHEMA +PARAMETERS SPECIFIC_SCHEMA PARTITIONS TABLE_SCHEMA PLUGINS PLUGIN_NAME PROCESSLIST ID @@ -86,6 +89,7 @@ SESSION_STATUS VARIABLE_NAME SESSION_VARIABLES VARIABLE_NAME STATISTICS TABLE_SCHEMA TABLES TABLE_SCHEMA +TABLESPACES TABLESPACE_NAME TABLE_CONSTRAINTS CONSTRAINT_SCHEMA TABLE_PRIVILEGES TABLE_SCHEMA TRIGGERS TRIGGER_SCHEMA diff --git a/mysql-test/r/not_embedded_server.result b/mysql-test/r/not_embedded_server.result index fac38624695..ce229bf3e2e 100644 --- a/mysql-test/r/not_embedded_server.result +++ b/mysql-test/r/not_embedded_server.result @@ -14,3 +14,32 @@ flush privileges; ERROR HY000: Table 'host' was not locked with LOCK TABLES unlock tables; drop table t1; +# +# Bug#54812: assert in Diagnostics_area::set_ok_status during EXPLAIN +# +CREATE USER nopriv_user@localhost; +connection: default +DROP TABLE IF EXISTS t1,t2,t3; +DROP FUNCTION IF EXISTS f; +CREATE TABLE t1 (key1 INT PRIMARY KEY); +CREATE TABLE t2 (key2 INT); +INSERT INTO t1 VALUES (1),(2); +CREATE FUNCTION f() RETURNS INT RETURN 1; +GRANT FILE ON *.* TO 'nopriv_user'@'localhost'; +FLUSH PRIVILEGES; +connection: con1 +SELECT MAX(key1) FROM t1 WHERE f() < 1 INTO OUTFILE 'mytest'; +ERROR 42000: execute command denied to user 'nopriv_user'@'localhost' for routine 'test.f' +INSERT INTO t2 SELECT MAX(key1) FROM t1 WHERE f() < 1; +ERROR 42000: execute command denied to user 'nopriv_user'@'localhost' for routine 'test.f' +SELECT MAX(key1) INTO @dummy FROM t1 WHERE f() < 1; +ERROR 42000: execute command denied to user 'nopriv_user'@'localhost' for routine 'test.f' +CREATE TABLE t3 (i INT) AS SELECT MAX(key1) FROM t1 WHERE f() < 1; +ERROR 42000: execute command denied to user 'nopriv_user'@'localhost' for routine 'test.f' +connection: default +DROP TABLE t1,t2; +DROP FUNCTION f; +DROP USER nopriv_user@localhost; +# +# End Bug#54812 +# diff --git a/mysql-test/r/partition.result b/mysql-test/r/partition.result index 80676c0d324..a639f9e6b3b 100644 --- a/mysql-test/r/partition.result +++ b/mysql-test/r/partition.result @@ -1,5 +1,38 @@ drop table if exists t1, t2; # +# Bug#57778: failed primary key add to partitioned innodb table +# inconsistent and crashes +# +CREATE TABLE t1 (a INT NOT NULL, b INT NOT NULL) +PARTITION BY KEY (a) PARTITIONS 2; +INSERT INTO t1 VALUES (0,1), (0,2); +ALTER TABLE t1 ADD PRIMARY KEY (a); +ERROR 23000: Duplicate entry '0' for key 'PRIMARY' +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) NOT NULL, + `b` int(11) NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +/*!50100 PARTITION BY KEY (a) +PARTITIONS 2 */ +SELECT * FROM t1; +a b +0 1 +0 2 +UPDATE t1 SET a = 1, b = 1 WHERE a = 0 AND b = 2; +ALTER TABLE t1 ADD PRIMARY KEY (a); +SELECT * FROM t1; +a b +1 1 +0 1 +ALTER TABLE t1 DROP PRIMARY KEY; +SELECT * FROM t1; +a b +1 1 +0 1 +DROP TABLE t1; +# # Bug#57113: ha_partition::extra(ha_extra_function): # Assertion `m_extra_cache' failed CREATE TABLE t1 diff --git a/mysql-test/r/ps.result b/mysql-test/r/ps.result index 33282823931..17f639cdca3 100644 --- a/mysql-test/r/ps.result +++ b/mysql-test/r/ps.result @@ -3202,6 +3202,510 @@ test1 DROP PROCEDURE p1; DROP PROCEDURE p2; +TINYINT + +CREATE PROCEDURE p1(OUT v TINYINT) +SET v = 127; +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; +SHOW CREATE TABLE tmp1; +Table Create Table +tmp1 CREATE TEMPORARY TABLE `tmp1` ( + `c1` bigint(20) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT @a, @a = 127; +@a @a = 127 +127 1 +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +SMALLINT + +CREATE PROCEDURE p1(OUT v SMALLINT) +SET v = 32767; +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; +SHOW CREATE TABLE tmp1; +Table Create Table +tmp1 CREATE TEMPORARY TABLE `tmp1` ( + `c1` bigint(20) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT @a, @a = 32767; +@a @a = 32767 +32767 1 +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +MEDIUMINT + +CREATE PROCEDURE p1(OUT v MEDIUMINT) +SET v = 8388607; +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; +SHOW CREATE TABLE tmp1; +Table Create Table +tmp1 CREATE TEMPORARY TABLE `tmp1` ( + `c1` bigint(20) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT @a, @a = 8388607; +@a @a = 8388607 +8388607 1 +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +INT + +CREATE PROCEDURE p1(OUT v INT) +SET v = 2147483647; +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; +SHOW CREATE TABLE tmp1; +Table Create Table +tmp1 CREATE TEMPORARY TABLE `tmp1` ( + `c1` bigint(20) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT @a, @a = 2147483647; +@a @a = 2147483647 +2147483647 1 +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +BIGINT + +CREATE PROCEDURE p1(OUT v BIGINT) +SET v = 9223372036854775807; +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; +SHOW CREATE TABLE tmp1; +Table Create Table +tmp1 CREATE TEMPORARY TABLE `tmp1` ( + `c1` bigint(20) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT @a, @a = 9223372036854775807; +@a @a = 9223372036854775807 +9223372036854775807 1 +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +BIT(11) + +CREATE PROCEDURE p1(OUT v BIT(11)) +SET v = b'10100100101'; +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; +SHOW CREATE TABLE tmp1; +Table Create Table +tmp1 CREATE TEMPORARY TABLE `tmp1` ( + `c1` bigint(20) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT @a, @a = b'10100100101'; +@a @a = b'10100100101' +1317 1 +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +TIMESTAMP + +CREATE PROCEDURE p1(OUT v TIMESTAMP) +SET v = '2007-11-18 15:01:02'; +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; +SHOW CREATE TABLE tmp1; +Table Create Table +tmp1 CREATE TEMPORARY TABLE `tmp1` ( + `c1` longblob +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT @a, @a = '2007-11-18 15:01:02'; +@a @a = '2007-11-18 15:01:02' +2007-11-18 15:01:02 1 +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +DATETIME + +CREATE PROCEDURE p1(OUT v DATETIME) +SET v = '1234-11-12 12:34:59'; +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; +SHOW CREATE TABLE tmp1; +Table Create Table +tmp1 CREATE TEMPORARY TABLE `tmp1` ( + `c1` longblob +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT @a, @a = '1234-11-12 12:34:59'; +@a @a = '1234-11-12 12:34:59' +1234-11-12 12:34:59 1 +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +TIME + +CREATE PROCEDURE p1(OUT v TIME) +SET v = '123:45:01'; +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; +SHOW CREATE TABLE tmp1; +Table Create Table +tmp1 CREATE TEMPORARY TABLE `tmp1` ( + `c1` longblob +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT @a, @a = '123:45:01'; +@a @a = '123:45:01' +123:45:01 1 +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +DATE + +CREATE PROCEDURE p1(OUT v DATE) +SET v = '1234-11-12'; +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; +SHOW CREATE TABLE tmp1; +Table Create Table +tmp1 CREATE TEMPORARY TABLE `tmp1` ( + `c1` longblob +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT @a, @a = '1234-11-12'; +@a @a = '1234-11-12' +1234-11-12 1 +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +YEAR + +CREATE PROCEDURE p1(OUT v YEAR) +SET v = 2010; +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; +SHOW CREATE TABLE tmp1; +Table Create Table +tmp1 CREATE TEMPORARY TABLE `tmp1` ( + `c1` bigint(20) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT @a, @a = 2010; +@a @a = 2010 +2010 1 +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +FLOAT(7, 4) + +CREATE PROCEDURE p1(OUT v FLOAT(7, 4)) +SET v = 123.4567; +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; +SHOW CREATE TABLE tmp1; +Table Create Table +tmp1 CREATE TEMPORARY TABLE `tmp1` ( + `c1` double DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT @a, @a - 123.4567 < 0.00001; +@a @a - 123.4567 < 0.00001 +123.45670318603516 1 +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +DOUBLE(8, 5) + +CREATE PROCEDURE p1(OUT v DOUBLE(8, 5)) +SET v = 123.45678; +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; +SHOW CREATE TABLE tmp1; +Table Create Table +tmp1 CREATE TEMPORARY TABLE `tmp1` ( + `c1` double DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT @a, @a - 123.45678 < 0.000001; +@a @a - 123.45678 < 0.000001 +123.45678 1 +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +DECIMAL(9, 6) + +CREATE PROCEDURE p1(OUT v DECIMAL(9, 6)) +SET v = 123.456789; +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; +SHOW CREATE TABLE tmp1; +Table Create Table +tmp1 CREATE TEMPORARY TABLE `tmp1` ( + `c1` decimal(65,30) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT @a, @a = 123.456789; +@a @a = 123.456789 +123.456789 1 +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +CHAR(32) + +CREATE PROCEDURE p1(OUT v CHAR(32)) +SET v = REPEAT('a', 16); +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; +SHOW CREATE TABLE tmp1; +Table Create Table +tmp1 CREATE TEMPORARY TABLE `tmp1` ( + `c1` longblob +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT @a, @a = REPEAT('a', 16); +@a @a = REPEAT('a', 16) +aaaaaaaaaaaaaaaa 1 +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +VARCHAR(32) + +CREATE PROCEDURE p1(OUT v VARCHAR(32)) +SET v = REPEAT('b', 16); +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; +SHOW CREATE TABLE tmp1; +Table Create Table +tmp1 CREATE TEMPORARY TABLE `tmp1` ( + `c1` longblob +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT @a, @a = REPEAT('b', 16); +@a @a = REPEAT('b', 16) +bbbbbbbbbbbbbbbb 1 +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +TINYTEXT + +CREATE PROCEDURE p1(OUT v TINYTEXT) +SET v = REPEAT('c', 16); +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; +SHOW CREATE TABLE tmp1; +Table Create Table +tmp1 CREATE TEMPORARY TABLE `tmp1` ( + `c1` longblob +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT @a, @a = REPEAT('c', 16); +@a @a = REPEAT('c', 16) +cccccccccccccccc 1 +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +TEXT + +CREATE PROCEDURE p1(OUT v TEXT) +SET v = REPEAT('d', 16); +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; +SHOW CREATE TABLE tmp1; +Table Create Table +tmp1 CREATE TEMPORARY TABLE `tmp1` ( + `c1` longblob +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT @a, @a = REPEAT('d', 16); +@a @a = REPEAT('d', 16) +dddddddddddddddd 1 +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +MEDIUMTEXT + +CREATE PROCEDURE p1(OUT v MEDIUMTEXT) +SET v = REPEAT('e', 16); +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; +SHOW CREATE TABLE tmp1; +Table Create Table +tmp1 CREATE TEMPORARY TABLE `tmp1` ( + `c1` longblob +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT @a, @a = REPEAT('e', 16); +@a @a = REPEAT('e', 16) +eeeeeeeeeeeeeeee 1 +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +LONGTEXT + +CREATE PROCEDURE p1(OUT v LONGTEXT) +SET v = REPEAT('f', 16); +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; +SHOW CREATE TABLE tmp1; +Table Create Table +tmp1 CREATE TEMPORARY TABLE `tmp1` ( + `c1` longblob +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT @a, @a = REPEAT('f', 16); +@a @a = REPEAT('f', 16) +ffffffffffffffff 1 +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +BINARY(32) + +CREATE PROCEDURE p1(OUT v BINARY(32)) +SET v = REPEAT('g', 32); +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; +SHOW CREATE TABLE tmp1; +Table Create Table +tmp1 CREATE TEMPORARY TABLE `tmp1` ( + `c1` longblob +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT @a, @a = REPEAT('g', 32); +@a @a = REPEAT('g', 32) +gggggggggggggggggggggggggggggggg 1 +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +VARBINARY(32) + +CREATE PROCEDURE p1(OUT v VARBINARY(32)) +SET v = REPEAT('h', 16); +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; +SHOW CREATE TABLE tmp1; +Table Create Table +tmp1 CREATE TEMPORARY TABLE `tmp1` ( + `c1` longblob +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT @a, @a = REPEAT('h', 16); +@a @a = REPEAT('h', 16) +hhhhhhhhhhhhhhhh 1 +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +TINYBLOB + +CREATE PROCEDURE p1(OUT v TINYBLOB) +SET v = REPEAT('i', 16); +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; +SHOW CREATE TABLE tmp1; +Table Create Table +tmp1 CREATE TEMPORARY TABLE `tmp1` ( + `c1` longblob +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT @a, @a = REPEAT('i', 16); +@a @a = REPEAT('i', 16) +iiiiiiiiiiiiiiii 1 +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +BLOB + +CREATE PROCEDURE p1(OUT v BLOB) +SET v = REPEAT('j', 16); +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; +SHOW CREATE TABLE tmp1; +Table Create Table +tmp1 CREATE TEMPORARY TABLE `tmp1` ( + `c1` longblob +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT @a, @a = REPEAT('j', 16); +@a @a = REPEAT('j', 16) +jjjjjjjjjjjjjjjj 1 +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +MEDIUMBLOB + +CREATE PROCEDURE p1(OUT v MEDIUMBLOB) +SET v = REPEAT('k', 16); +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; +SHOW CREATE TABLE tmp1; +Table Create Table +tmp1 CREATE TEMPORARY TABLE `tmp1` ( + `c1` longblob +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT @a, @a = REPEAT('k', 16); +@a @a = REPEAT('k', 16) +kkkkkkkkkkkkkkkk 1 +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +LONGBLOB + +CREATE PROCEDURE p1(OUT v LONGBLOB) +SET v = REPEAT('l', 16); +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; +SHOW CREATE TABLE tmp1; +Table Create Table +tmp1 CREATE TEMPORARY TABLE `tmp1` ( + `c1` longblob +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT @a, @a = REPEAT('l', 16); +@a @a = REPEAT('l', 16) +llllllllllllllll 1 +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +SET('aaa', 'bbb') + +CREATE PROCEDURE p1(OUT v SET('aaa', 'bbb')) +SET v = 'aaa'; +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; +SHOW CREATE TABLE tmp1; +Table Create Table +tmp1 CREATE TEMPORARY TABLE `tmp1` ( + `c1` longblob +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT @a, @a = 'aaa'; +@a @a = 'aaa' +aaa 1 +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +ENUM('aaa', 'bbb') + +CREATE PROCEDURE p1(OUT v ENUM('aaa', 'bbb')) +SET v = 'aaa'; +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; +SHOW CREATE TABLE tmp1; +Table Create Table +tmp1 CREATE TEMPORARY TABLE `tmp1` ( + `c1` longblob +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT @a, @a = 'aaa'; +@a @a = 'aaa' +aaa 1 +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + # End of WL#4435. # # WL#4284: Transactional DDL locking diff --git a/mysql-test/r/variables-big.result b/mysql-test/r/variables-big.result index 960fc6d22f4..71b32393d82 100644 --- a/mysql-test/r/variables-big.result +++ b/mysql-test/r/variables-big.result @@ -1,20 +1,20 @@ SET SESSION transaction_prealloc_size=1024*1024*1024*1; SHOW PROCESSLIST; Id User Host db Command Time State Info -<Id> root localhost test Query <Time> NULL SHOW PROCESSLIST +<Id> root <Host> test Query <Time> NULL SHOW PROCESSLIST SET SESSION transaction_prealloc_size=1024*1024*1024*2; SHOW PROCESSLIST; Id User Host db Command Time State Info -<Id> root localhost test Query <Time> NULL SHOW PROCESSLIST +<Id> root <Host> test Query <Time> NULL SHOW PROCESSLIST SET SESSION transaction_prealloc_size=1024*1024*1024*3; SHOW PROCESSLIST; Id User Host db Command Time State Info -<Id> root localhost test Query <Time> NULL SHOW PROCESSLIST +<Id> root <Host> test Query <Time> NULL SHOW PROCESSLIST SET SESSION transaction_prealloc_size=1024*1024*1024*4; SHOW PROCESSLIST; Id User Host db Command Time State Info -<Id> root localhost test Query <Time> NULL SHOW PROCESSLIST +<Id> root <Host> test Query <Time> NULL SHOW PROCESSLIST SET SESSION transaction_prealloc_size=1024*1024*1024*5; SHOW PROCESSLIST; Id User Host db Command Time State Info -<Id> root localhost test Query <Time> NULL SHOW PROCESSLIST +<Id> root <Host> test Query <Time> NULL SHOW PROCESSLIST diff --git a/mysql-test/suite/parts/inc/partition_auto_increment.inc b/mysql-test/suite/parts/inc/partition_auto_increment.inc index 102e57d3d04..034460d49ac 100644 --- a/mysql-test/suite/parts/inc/partition_auto_increment.inc +++ b/mysql-test/suite/parts/inc/partition_auto_increment.inc @@ -105,6 +105,30 @@ OPTIMIZE TABLE t1; SHOW CREATE TABLE t1; DROP TABLE t1; +if (!$skip_update) +{ +eval CREATE TABLE t1 +(a INT NULL AUTO_INCREMENT, + UNIQUE KEY (a)) +ENGINE=$engine; +SET LAST_INSERT_ID = 999; +SET INSERT_ID = 0; +INSERT INTO t1 SET a = 1 ON DUPLICATE KEY UPDATE a = NULL; +SELECT LAST_INSERT_ID(); +SELECT * FROM t1; +INSERT INTO t1 SET a = 1 ON DUPLICATE KEY UPDATE a = NULL; +SELECT LAST_INSERT_ID(); +SELECT * FROM t1; +UPDATE t1 SET a = 1 WHERE a IS NULL; +SELECT LAST_INSERT_ID(); +SELECT * FROM t1; +UPDATE t1 SET a = NULL WHERE a = 1; +SELECT LAST_INSERT_ID(); +SELECT * FROM t1; +DROP TABLE t1; +SET INSERT_ID = 1; +} + -- echo # Simple test with NULL eval CREATE TABLE t1 ( c1 INT NOT NULL AUTO_INCREMENT, @@ -831,5 +855,30 @@ SELECT * FROM t ORDER BY c1 ASC; DROP TABLE t; +if (!$skip_update) +{ +eval CREATE TABLE t1 +(a INT NULL AUTO_INCREMENT, + UNIQUE KEY (a)) +ENGINE=$engine +PARTITION BY KEY(a) PARTITIONS 2; +SET LAST_INSERT_ID = 999; +SET INSERT_ID = 0; +INSERT INTO t1 SET a = 1 ON DUPLICATE KEY UPDATE a = NULL; +SELECT LAST_INSERT_ID(); +SELECT * FROM t1; +INSERT INTO t1 SET a = 1 ON DUPLICATE KEY UPDATE a = NULL; +SELECT LAST_INSERT_ID(); +SELECT * FROM t1; +UPDATE t1 SET a = 1 WHERE a IS NULL; +SELECT LAST_INSERT_ID(); +SELECT * FROM t1; +UPDATE t1 SET a = NULL WHERE a = 1; +SELECT LAST_INSERT_ID(); +SELECT * FROM t1; +DROP TABLE t1; +} + + --echo ############################################################################## } diff --git a/mysql-test/suite/parts/r/partition_auto_increment_blackhole.result b/mysql-test/suite/parts/r/partition_auto_increment_blackhole.result index d6ea8ba0fe4..2344f03ce3f 100644 --- a/mysql-test/suite/parts/r/partition_auto_increment_blackhole.result +++ b/mysql-test/suite/parts/r/partition_auto_increment_blackhole.result @@ -120,6 +120,38 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`c1`) ) ENGINE=BLACKHOLE DEFAULT CHARSET=latin1 DROP TABLE t1; +CREATE TABLE t1 +(a INT NULL AUTO_INCREMENT, +UNIQUE KEY (a)) +ENGINE='Blackhole'; +SET LAST_INSERT_ID = 999; +SET INSERT_ID = 0; +INSERT INTO t1 SET a = 1 ON DUPLICATE KEY UPDATE a = NULL; +SELECT LAST_INSERT_ID(); +LAST_INSERT_ID() +999 +SELECT * FROM t1; +a +INSERT INTO t1 SET a = 1 ON DUPLICATE KEY UPDATE a = NULL; +SELECT LAST_INSERT_ID(); +LAST_INSERT_ID() +999 +SELECT * FROM t1; +a +UPDATE t1 SET a = 1 WHERE a IS NULL; +SELECT LAST_INSERT_ID(); +LAST_INSERT_ID() +999 +SELECT * FROM t1; +a +UPDATE t1 SET a = NULL WHERE a = 1; +SELECT LAST_INSERT_ID(); +LAST_INSERT_ID() +999 +SELECT * FROM t1; +a +DROP TABLE t1; +SET INSERT_ID = 1; # Simple test with NULL CREATE TABLE t1 ( c1 INT NOT NULL AUTO_INCREMENT, diff --git a/mysql-test/suite/parts/r/partition_auto_increment_innodb.result b/mysql-test/suite/parts/r/partition_auto_increment_innodb.result index 4cd7aa57417..5fd576322d5 100644 --- a/mysql-test/suite/parts/r/partition_auto_increment_innodb.result +++ b/mysql-test/suite/parts/r/partition_auto_increment_innodb.result @@ -136,6 +136,42 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`c1`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 DROP TABLE t1; +CREATE TABLE t1 +(a INT NULL AUTO_INCREMENT, +UNIQUE KEY (a)) +ENGINE='InnoDB'; +SET LAST_INSERT_ID = 999; +SET INSERT_ID = 0; +INSERT INTO t1 SET a = 1 ON DUPLICATE KEY UPDATE a = NULL; +SELECT LAST_INSERT_ID(); +LAST_INSERT_ID() +999 +SELECT * FROM t1; +a +1 +INSERT INTO t1 SET a = 1 ON DUPLICATE KEY UPDATE a = NULL; +SELECT LAST_INSERT_ID(); +LAST_INSERT_ID() +999 +SELECT * FROM t1; +a +0 +UPDATE t1 SET a = 1 WHERE a IS NULL; +SELECT LAST_INSERT_ID(); +LAST_INSERT_ID() +999 +SELECT * FROM t1; +a +0 +UPDATE t1 SET a = NULL WHERE a = 1; +SELECT LAST_INSERT_ID(); +LAST_INSERT_ID() +999 +SELECT * FROM t1; +a +0 +DROP TABLE t1; +SET INSERT_ID = 1; # Simple test with NULL CREATE TABLE t1 ( c1 INT NOT NULL AUTO_INCREMENT, @@ -1023,4 +1059,40 @@ c1 c2 2 20 127 40 DROP TABLE t; +CREATE TABLE t1 +(a INT NULL AUTO_INCREMENT, +UNIQUE KEY (a)) +ENGINE='InnoDB' +PARTITION BY KEY(a) PARTITIONS 2; +SET LAST_INSERT_ID = 999; +SET INSERT_ID = 0; +INSERT INTO t1 SET a = 1 ON DUPLICATE KEY UPDATE a = NULL; +SELECT LAST_INSERT_ID(); +LAST_INSERT_ID() +999 +SELECT * FROM t1; +a +1 +INSERT INTO t1 SET a = 1 ON DUPLICATE KEY UPDATE a = NULL; +SELECT LAST_INSERT_ID(); +LAST_INSERT_ID() +999 +SELECT * FROM t1; +a +0 +UPDATE t1 SET a = 1 WHERE a IS NULL; +SELECT LAST_INSERT_ID(); +LAST_INSERT_ID() +999 +SELECT * FROM t1; +a +0 +UPDATE t1 SET a = NULL WHERE a = 1; +SELECT LAST_INSERT_ID(); +LAST_INSERT_ID() +999 +SELECT * FROM t1; +a +0 +DROP TABLE t1; ############################################################################## diff --git a/mysql-test/suite/parts/r/partition_auto_increment_memory.result b/mysql-test/suite/parts/r/partition_auto_increment_memory.result index 1a27d1c2e52..c3a5073b029 100644 --- a/mysql-test/suite/parts/r/partition_auto_increment_memory.result +++ b/mysql-test/suite/parts/r/partition_auto_increment_memory.result @@ -136,6 +136,42 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`c1`) ) ENGINE=MEMORY AUTO_INCREMENT=102 DEFAULT CHARSET=latin1 DROP TABLE t1; +CREATE TABLE t1 +(a INT NULL AUTO_INCREMENT, +UNIQUE KEY (a)) +ENGINE='Memory'; +SET LAST_INSERT_ID = 999; +SET INSERT_ID = 0; +INSERT INTO t1 SET a = 1 ON DUPLICATE KEY UPDATE a = NULL; +SELECT LAST_INSERT_ID(); +LAST_INSERT_ID() +999 +SELECT * FROM t1; +a +1 +INSERT INTO t1 SET a = 1 ON DUPLICATE KEY UPDATE a = NULL; +SELECT LAST_INSERT_ID(); +LAST_INSERT_ID() +999 +SELECT * FROM t1; +a +0 +UPDATE t1 SET a = 1 WHERE a IS NULL; +SELECT LAST_INSERT_ID(); +LAST_INSERT_ID() +999 +SELECT * FROM t1; +a +0 +UPDATE t1 SET a = NULL WHERE a = 1; +SELECT LAST_INSERT_ID(); +LAST_INSERT_ID() +999 +SELECT * FROM t1; +a +0 +DROP TABLE t1; +SET INSERT_ID = 1; # Simple test with NULL CREATE TABLE t1 ( c1 INT NOT NULL AUTO_INCREMENT, @@ -1051,4 +1087,40 @@ c1 c2 2 20 127 40 DROP TABLE t; +CREATE TABLE t1 +(a INT NULL AUTO_INCREMENT, +UNIQUE KEY (a)) +ENGINE='Memory' +PARTITION BY KEY(a) PARTITIONS 2; +SET LAST_INSERT_ID = 999; +SET INSERT_ID = 0; +INSERT INTO t1 SET a = 1 ON DUPLICATE KEY UPDATE a = NULL; +SELECT LAST_INSERT_ID(); +LAST_INSERT_ID() +999 +SELECT * FROM t1; +a +1 +INSERT INTO t1 SET a = 1 ON DUPLICATE KEY UPDATE a = NULL; +SELECT LAST_INSERT_ID(); +LAST_INSERT_ID() +999 +SELECT * FROM t1; +a +0 +UPDATE t1 SET a = 1 WHERE a IS NULL; +SELECT LAST_INSERT_ID(); +LAST_INSERT_ID() +999 +SELECT * FROM t1; +a +0 +UPDATE t1 SET a = NULL WHERE a = 1; +SELECT LAST_INSERT_ID(); +LAST_INSERT_ID() +999 +SELECT * FROM t1; +a +0 +DROP TABLE t1; ############################################################################## diff --git a/mysql-test/suite/parts/r/partition_auto_increment_myisam.result b/mysql-test/suite/parts/r/partition_auto_increment_myisam.result index 9885c78a921..ad440155d33 100644 --- a/mysql-test/suite/parts/r/partition_auto_increment_myisam.result +++ b/mysql-test/suite/parts/r/partition_auto_increment_myisam.result @@ -136,6 +136,42 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`c1`) ) ENGINE=MyISAM AUTO_INCREMENT=102 DEFAULT CHARSET=latin1 DROP TABLE t1; +CREATE TABLE t1 +(a INT NULL AUTO_INCREMENT, +UNIQUE KEY (a)) +ENGINE='MyISAM'; +SET LAST_INSERT_ID = 999; +SET INSERT_ID = 0; +INSERT INTO t1 SET a = 1 ON DUPLICATE KEY UPDATE a = NULL; +SELECT LAST_INSERT_ID(); +LAST_INSERT_ID() +999 +SELECT * FROM t1; +a +1 +INSERT INTO t1 SET a = 1 ON DUPLICATE KEY UPDATE a = NULL; +SELECT LAST_INSERT_ID(); +LAST_INSERT_ID() +999 +SELECT * FROM t1; +a +0 +UPDATE t1 SET a = 1 WHERE a IS NULL; +SELECT LAST_INSERT_ID(); +LAST_INSERT_ID() +999 +SELECT * FROM t1; +a +0 +UPDATE t1 SET a = NULL WHERE a = 1; +SELECT LAST_INSERT_ID(); +LAST_INSERT_ID() +999 +SELECT * FROM t1; +a +0 +DROP TABLE t1; +SET INSERT_ID = 1; # Simple test with NULL CREATE TABLE t1 ( c1 INT NOT NULL AUTO_INCREMENT, @@ -1070,4 +1106,40 @@ c1 c2 2 20 127 40 DROP TABLE t; +CREATE TABLE t1 +(a INT NULL AUTO_INCREMENT, +UNIQUE KEY (a)) +ENGINE='MyISAM' +PARTITION BY KEY(a) PARTITIONS 2; +SET LAST_INSERT_ID = 999; +SET INSERT_ID = 0; +INSERT INTO t1 SET a = 1 ON DUPLICATE KEY UPDATE a = NULL; +SELECT LAST_INSERT_ID(); +LAST_INSERT_ID() +999 +SELECT * FROM t1; +a +1 +INSERT INTO t1 SET a = 1 ON DUPLICATE KEY UPDATE a = NULL; +SELECT LAST_INSERT_ID(); +LAST_INSERT_ID() +999 +SELECT * FROM t1; +a +0 +UPDATE t1 SET a = 1 WHERE a IS NULL; +SELECT LAST_INSERT_ID(); +LAST_INSERT_ID() +999 +SELECT * FROM t1; +a +0 +UPDATE t1 SET a = NULL WHERE a = 1; +SELECT LAST_INSERT_ID(); +LAST_INSERT_ID() +999 +SELECT * FROM t1; +a +0 +DROP TABLE t1; ############################################################################## diff --git a/mysql-test/t/disabled.def b/mysql-test/t/disabled.def index 88f8f2b32f8..d312254da19 100644 --- a/mysql-test/t/disabled.def +++ b/mysql-test/t/disabled.def @@ -14,3 +14,8 @@ query_cache_28249 : Bug#43861 2009-03-25 main.query_cache_28249 fails spo ctype_utf8mb4_ndb : Bug#55799, Bug#51907, disabled by Konstantin 2010-08-06 main.mysqlhotcopy_myisam : Bug#56817 2010-10-21 anitha mysqlhotcopy* fails main.mysqlhotcopy_archive: Bug#56817 2010-10-21 anitha mysqlhotcopy* fails +log_tables-big : Bug#48646 2010-11-15 mattiasj report already exists +read_many_rows_innodb : Bug#37635 2010-11-15 mattiasj report already exists +sum_distinct-big : Bug#56927 2010-11-15 mattiasj was not tested +alter_table-big : Bug#37248 2010-11-15 mattiasj was not tested +create-big : Bug#37248 2010-11-15 mattiasj was not tested diff --git a/mysql-test/t/not_embedded_server.test b/mysql-test/t/not_embedded_server.test index 917d5871682..3fea1f630e0 100644 --- a/mysql-test/t/not_embedded_server.test +++ b/mysql-test/t/not_embedded_server.test @@ -54,3 +54,57 @@ lock tables t1 read; flush privileges; unlock tables; drop table t1; + +--echo # +--echo # Bug#54812: assert in Diagnostics_area::set_ok_status during EXPLAIN +--echo # + +CREATE USER nopriv_user@localhost; + +connection default; +--echo connection: default + +--disable_warnings +DROP TABLE IF EXISTS t1,t2,t3; +DROP FUNCTION IF EXISTS f; +--enable_warnings + +CREATE TABLE t1 (key1 INT PRIMARY KEY); +CREATE TABLE t2 (key2 INT); +INSERT INTO t1 VALUES (1),(2); + +CREATE FUNCTION f() RETURNS INT RETURN 1; + +GRANT FILE ON *.* TO 'nopriv_user'@'localhost'; + +FLUSH PRIVILEGES; + +connect (con1,localhost,nopriv_user,,); +connection con1; +--echo connection: con1 + +--error ER_PROCACCESS_DENIED_ERROR +SELECT MAX(key1) FROM t1 WHERE f() < 1 INTO OUTFILE 'mytest'; + +--error ER_PROCACCESS_DENIED_ERROR +INSERT INTO t2 SELECT MAX(key1) FROM t1 WHERE f() < 1; + +--error ER_PROCACCESS_DENIED_ERROR +SELECT MAX(key1) INTO @dummy FROM t1 WHERE f() < 1; + +--error ER_PROCACCESS_DENIED_ERROR +CREATE TABLE t3 (i INT) AS SELECT MAX(key1) FROM t1 WHERE f() < 1; + +disconnect con1; +--source include/wait_until_disconnected.inc + +connection default; +--echo connection: default + +DROP TABLE t1,t2; +DROP FUNCTION f; +DROP USER nopriv_user@localhost; + +--echo # +--echo # End Bug#54812 +--echo # diff --git a/mysql-test/t/partition.test b/mysql-test/t/partition.test index 68239c06660..cf3dcfadb27 100644 --- a/mysql-test/t/partition.test +++ b/mysql-test/t/partition.test @@ -15,6 +15,24 @@ drop table if exists t1, t2; --enable_warnings --echo # +--echo # Bug#57778: failed primary key add to partitioned innodb table +--echo # inconsistent and crashes +--echo # +CREATE TABLE t1 (a INT NOT NULL, b INT NOT NULL) +PARTITION BY KEY (a) PARTITIONS 2; +INSERT INTO t1 VALUES (0,1), (0,2); +--error ER_DUP_ENTRY +ALTER TABLE t1 ADD PRIMARY KEY (a); +SHOW CREATE TABLE t1; +SELECT * FROM t1; +UPDATE t1 SET a = 1, b = 1 WHERE a = 0 AND b = 2; +ALTER TABLE t1 ADD PRIMARY KEY (a); +SELECT * FROM t1; +ALTER TABLE t1 DROP PRIMARY KEY; +SELECT * FROM t1; +DROP TABLE t1; + +--echo # --echo # Bug#57113: ha_partition::extra(ha_extra_function): --echo # Assertion `m_extra_cache' failed CREATE TABLE t1 diff --git a/mysql-test/t/ps.test b/mysql-test/t/ps.test index bf15648951b..eaef1cf3000 100644 --- a/mysql-test/t/ps.test +++ b/mysql-test/t/ps.test @@ -3296,6 +3296,12 @@ SELECT @a; DROP PROCEDURE p1; DROP PROCEDURE p2; +########################################################################### + +--source t/wl4435_generated.inc + +########################################################################### + --echo --echo # End of WL#4435. diff --git a/mysql-test/t/variables-big.test b/mysql-test/t/variables-big.test index fdb11ffa907..6c357bb6e54 100644 --- a/mysql-test/t/variables-big.test +++ b/mysql-test/t/variables-big.test @@ -37,19 +37,19 @@ --disable_warnings SET SESSION transaction_prealloc_size=1024*1024*1024*1; ---replace_column 1 <Id> 6 <Time> +--replace_column 1 <Id> 3 <Host> 6 <Time> SHOW PROCESSLIST; SET SESSION transaction_prealloc_size=1024*1024*1024*2; ---replace_column 1 <Id> 6 <Time> +--replace_column 1 <Id> 3 <Host> 6 <Time> SHOW PROCESSLIST; SET SESSION transaction_prealloc_size=1024*1024*1024*3; ---replace_column 1 <Id> 6 <Time> +--replace_column 1 <Id> 3 <Host> 6 <Time> SHOW PROCESSLIST; SET SESSION transaction_prealloc_size=1024*1024*1024*4; ---replace_column 1 <Id> 6 <Time> +--replace_column 1 <Id> 3 <Host> 6 <Time> SHOW PROCESSLIST; SET SESSION transaction_prealloc_size=1024*1024*1024*5; ---replace_column 1 <Id> 6 <Time> +--replace_column 1 <Id> 3 <Host> 6 <Time> SHOW PROCESSLIST; --enable_warnings diff --git a/mysql-test/t/wl4435_generated.inc b/mysql-test/t/wl4435_generated.inc new file mode 100644 index 00000000000..5ea05a89402 --- /dev/null +++ b/mysql-test/t/wl4435_generated.inc @@ -0,0 +1,588 @@ + +########################################################################### + +--echo +--echo TINYINT +--echo + +CREATE PROCEDURE p1(OUT v TINYINT) + SET v = 127; + +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; + +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; + +SHOW CREATE TABLE tmp1; + +SELECT @a, @a = 127; + +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +########################################################################### + +--echo +--echo SMALLINT +--echo + +CREATE PROCEDURE p1(OUT v SMALLINT) + SET v = 32767; + +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; + +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; + +SHOW CREATE TABLE tmp1; + +SELECT @a, @a = 32767; + +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +########################################################################### + +--echo +--echo MEDIUMINT +--echo + +CREATE PROCEDURE p1(OUT v MEDIUMINT) + SET v = 8388607; + +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; + +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; + +SHOW CREATE TABLE tmp1; + +SELECT @a, @a = 8388607; + +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +########################################################################### + +--echo +--echo INT +--echo + +CREATE PROCEDURE p1(OUT v INT) + SET v = 2147483647; + +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; + +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; + +SHOW CREATE TABLE tmp1; + +SELECT @a, @a = 2147483647; + +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +########################################################################### + +--echo +--echo BIGINT +--echo + +CREATE PROCEDURE p1(OUT v BIGINT) + SET v = 9223372036854775807; + +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; + +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; + +SHOW CREATE TABLE tmp1; + +SELECT @a, @a = 9223372036854775807; + +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +########################################################################### + +--echo +--echo BIT(11) +--echo + +CREATE PROCEDURE p1(OUT v BIT(11)) + SET v = b'10100100101'; + +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; + +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; + +SHOW CREATE TABLE tmp1; + +SELECT @a, @a = b'10100100101'; + +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +########################################################################### + +--echo +--echo TIMESTAMP +--echo + +CREATE PROCEDURE p1(OUT v TIMESTAMP) + SET v = '2007-11-18 15:01:02'; + +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; + +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; + +SHOW CREATE TABLE tmp1; + +SELECT @a, @a = '2007-11-18 15:01:02'; + +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +########################################################################### + +--echo +--echo DATETIME +--echo + +CREATE PROCEDURE p1(OUT v DATETIME) + SET v = '1234-11-12 12:34:59'; + +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; + +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; + +SHOW CREATE TABLE tmp1; + +SELECT @a, @a = '1234-11-12 12:34:59'; + +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +########################################################################### + +--echo +--echo TIME +--echo + +CREATE PROCEDURE p1(OUT v TIME) + SET v = '123:45:01'; + +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; + +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; + +SHOW CREATE TABLE tmp1; + +SELECT @a, @a = '123:45:01'; + +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +########################################################################### + +--echo +--echo DATE +--echo + +CREATE PROCEDURE p1(OUT v DATE) + SET v = '1234-11-12'; + +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; + +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; + +SHOW CREATE TABLE tmp1; + +SELECT @a, @a = '1234-11-12'; + +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +########################################################################### + +--echo +--echo YEAR +--echo + +CREATE PROCEDURE p1(OUT v YEAR) + SET v = 2010; + +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; + +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; + +SHOW CREATE TABLE tmp1; + +SELECT @a, @a = 2010; + +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +########################################################################### + +--echo +--echo FLOAT(7, 4) +--echo + +CREATE PROCEDURE p1(OUT v FLOAT(7, 4)) + SET v = 123.4567; + +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; + +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; + +SHOW CREATE TABLE tmp1; + +SELECT @a, @a - 123.4567 < 0.00001; + +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +########################################################################### + +--echo +--echo DOUBLE(8, 5) +--echo + +CREATE PROCEDURE p1(OUT v DOUBLE(8, 5)) + SET v = 123.45678; + +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; + +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; + +SHOW CREATE TABLE tmp1; + +SELECT @a, @a - 123.45678 < 0.000001; + +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +########################################################################### + +--echo +--echo DECIMAL(9, 6) +--echo + +CREATE PROCEDURE p1(OUT v DECIMAL(9, 6)) + SET v = 123.456789; + +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; + +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; + +SHOW CREATE TABLE tmp1; + +SELECT @a, @a = 123.456789; + +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +########################################################################### + +--echo +--echo CHAR(32) +--echo + +CREATE PROCEDURE p1(OUT v CHAR(32)) + SET v = REPEAT('a', 16); + +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; + +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; + +SHOW CREATE TABLE tmp1; + +SELECT @a, @a = REPEAT('a', 16); + +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +########################################################################### + +--echo +--echo VARCHAR(32) +--echo + +CREATE PROCEDURE p1(OUT v VARCHAR(32)) + SET v = REPEAT('b', 16); + +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; + +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; + +SHOW CREATE TABLE tmp1; + +SELECT @a, @a = REPEAT('b', 16); + +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +########################################################################### + +--echo +--echo TINYTEXT +--echo + +CREATE PROCEDURE p1(OUT v TINYTEXT) + SET v = REPEAT('c', 16); + +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; + +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; + +SHOW CREATE TABLE tmp1; + +SELECT @a, @a = REPEAT('c', 16); + +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +########################################################################### + +--echo +--echo TEXT +--echo + +CREATE PROCEDURE p1(OUT v TEXT) + SET v = REPEAT('d', 16); + +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; + +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; + +SHOW CREATE TABLE tmp1; + +SELECT @a, @a = REPEAT('d', 16); + +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +########################################################################### + +--echo +--echo MEDIUMTEXT +--echo + +CREATE PROCEDURE p1(OUT v MEDIUMTEXT) + SET v = REPEAT('e', 16); + +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; + +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; + +SHOW CREATE TABLE tmp1; + +SELECT @a, @a = REPEAT('e', 16); + +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +########################################################################### + +--echo +--echo LONGTEXT +--echo + +CREATE PROCEDURE p1(OUT v LONGTEXT) + SET v = REPEAT('f', 16); + +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; + +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; + +SHOW CREATE TABLE tmp1; + +SELECT @a, @a = REPEAT('f', 16); + +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +########################################################################### + +--echo +--echo BINARY(32) +--echo + +CREATE PROCEDURE p1(OUT v BINARY(32)) + SET v = REPEAT('g', 32); + +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; + +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; + +SHOW CREATE TABLE tmp1; + +SELECT @a, @a = REPEAT('g', 32); + +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +########################################################################### + +--echo +--echo VARBINARY(32) +--echo + +CREATE PROCEDURE p1(OUT v VARBINARY(32)) + SET v = REPEAT('h', 16); + +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; + +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; + +SHOW CREATE TABLE tmp1; + +SELECT @a, @a = REPEAT('h', 16); + +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +########################################################################### + +--echo +--echo TINYBLOB +--echo + +CREATE PROCEDURE p1(OUT v TINYBLOB) + SET v = REPEAT('i', 16); + +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; + +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; + +SHOW CREATE TABLE tmp1; + +SELECT @a, @a = REPEAT('i', 16); + +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +########################################################################### + +--echo +--echo BLOB +--echo + +CREATE PROCEDURE p1(OUT v BLOB) + SET v = REPEAT('j', 16); + +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; + +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; + +SHOW CREATE TABLE tmp1; + +SELECT @a, @a = REPEAT('j', 16); + +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +########################################################################### + +--echo +--echo MEDIUMBLOB +--echo + +CREATE PROCEDURE p1(OUT v MEDIUMBLOB) + SET v = REPEAT('k', 16); + +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; + +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; + +SHOW CREATE TABLE tmp1; + +SELECT @a, @a = REPEAT('k', 16); + +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +########################################################################### + +--echo +--echo LONGBLOB +--echo + +CREATE PROCEDURE p1(OUT v LONGBLOB) + SET v = REPEAT('l', 16); + +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; + +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; + +SHOW CREATE TABLE tmp1; + +SELECT @a, @a = REPEAT('l', 16); + +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +########################################################################### + +--echo +--echo SET('aaa', 'bbb') +--echo + +CREATE PROCEDURE p1(OUT v SET('aaa', 'bbb')) + SET v = 'aaa'; + +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; + +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; + +SHOW CREATE TABLE tmp1; + +SELECT @a, @a = 'aaa'; + +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; + +########################################################################### + +--echo +--echo ENUM('aaa', 'bbb') +--echo + +CREATE PROCEDURE p1(OUT v ENUM('aaa', 'bbb')) + SET v = 'aaa'; + +PREPARE stmt1 FROM 'CALL p1(?)'; +EXECUTE stmt1 USING @a; + +CREATE TEMPORARY TABLE tmp1 AS SELECT @a AS c1; + +SHOW CREATE TABLE tmp1; + +SELECT @a, @a = 'aaa'; + +DROP TEMPORARY TABLE tmp1; +DROP PROCEDURE p1; |