Commit 43bf01e3 authored by Jon Olav Hauglid's avatar Jon Olav Hauglid

Bug #21099 MySQL 5.0.22 silently creates MyISAM tables even though

           InnoDB specified.
            
NO_ENGINE_SUBSTITUTION added to TRADITIONAL sql mode to prevent
silent conversions from InnoDB to MyISAM in that sql mode.

A number of test case results files updated to reflect this change.
Test added to sql_mode.test that checks that TRADITIONAL really 
includes NO_ENGINE_SUBSTITUION.
parent d4669dc4
...@@ -2391,7 +2391,7 @@ trg3 UPDATE t1 begin ...@@ -2391,7 +2391,7 @@ trg3 UPDATE t1 begin
if new.a = -1 then if new.a = -1 then
set @fired:= "Yes"; set @fired:= "Yes";
end if; end if;
end AFTER 0000-00-00 00:00:00 STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER root@localhost latin1 latin1_swedish_ci latin1_swedish_ci end AFTER 0000-00-00 00:00:00 STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci
INSERT INTO t1 (a) VALUES (1),(2),(3),(22); INSERT INTO t1 (a) VALUES (1),(2),(3),(22);
update t1 set a = 4 where a=3; update t1 set a = 4 where a=3;
...@@ -2468,7 +2468,7 @@ DELIMITER ; ...@@ -2468,7 +2468,7 @@ DELIMITER ;
/*!50003 SET character_set_results = latin1 */ ; /*!50003 SET character_set_results = latin1 */ ;
/*!50003 SET collation_connection = latin1_swedish_ci */ ; /*!50003 SET collation_connection = latin1_swedish_ci */ ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER' */ ; /*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;; DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 trigger trg3 after update on t1 for each row /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 trigger trg3 after update on t1 for each row
begin begin
...@@ -2500,7 +2500,7 @@ UNLOCK TABLES; ...@@ -2500,7 +2500,7 @@ UNLOCK TABLES;
/*!50003 SET character_set_results = latin1 */ ; /*!50003 SET character_set_results = latin1 */ ;
/*!50003 SET collation_connection = latin1_swedish_ci */ ; /*!50003 SET collation_connection = latin1_swedish_ci */ ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER' */ ; /*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;; DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 trigger trg4 before insert on t2 for each row /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 trigger trg4 before insert on t2 for each row
begin begin
...@@ -2594,12 +2594,12 @@ trg3 UPDATE t1 begin ...@@ -2594,12 +2594,12 @@ trg3 UPDATE t1 begin
if new.a = -1 then if new.a = -1 then
set @fired:= "Yes"; set @fired:= "Yes";
end if; end if;
end AFTER # STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER root@localhost latin1 latin1_swedish_ci latin1_swedish_ci end AFTER # STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci
trg4 INSERT t2 begin trg4 INSERT t2 begin
if new.a > 10 then if new.a > 10 then
set @fired:= "No"; set @fired:= "No";
end if; end if;
end BEFORE # STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER root@localhost latin1 latin1_swedish_ci latin1_swedish_ci end BEFORE # STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci
DROP TABLE t1, t2; DROP TABLE t1, t2;
# #
# Bug#9136 my_print_defaults changed behaviour between 4.1.7 and 4.1.10a # Bug#9136 my_print_defaults changed behaviour between 4.1.7 and 4.1.10a
......
...@@ -506,6 +506,12 @@ mysqltest_32753@localhost ...@@ -506,6 +506,12 @@ mysqltest_32753@localhost
set session sql_mode=@OLD_SQL_MODE; set session sql_mode=@OLD_SQL_MODE;
flush privileges; flush privileges;
drop user mysqltest_32753@localhost; drop user mysqltest_32753@localhost;
SET @org_mode=@@sql_mode;
SET @@sql_mode='traditional';
SELECT @@sql_mode LIKE '%NO_ENGINE_SUBSTITUTION%';
@@sql_mode LIKE '%NO_ENGINE_SUBSTITUTION%'
1
SET sql_mode=@org_mode;
DROP TABLE IF EXISTS t1,t2; DROP TABLE IF EXISTS t1,t2;
CREATE USER 'user_PCTFL'@'localhost' identified by 'PWD'; CREATE USER 'user_PCTFL'@'localhost' identified by 'PWD';
CREATE USER 'user_no_PCTFL'@'localhost' identified by 'PWD'; CREATE USER 'user_no_PCTFL'@'localhost' identified by 'PWD';
......
...@@ -2,7 +2,7 @@ set @org_mode=@@sql_mode; ...@@ -2,7 +2,7 @@ set @org_mode=@@sql_mode;
set @@sql_mode='ansi,traditional'; set @@sql_mode='ansi,traditional';
select @@sql_mode; select @@sql_mode;
@@sql_mode @@sql_mode
REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI,STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI,STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
DROP TABLE IF EXISTS t1, t2; DROP TABLE IF EXISTS t1, t2;
CREATE TABLE t1 (col1 date); CREATE TABLE t1 (col1 date);
INSERT INTO t1 VALUES('2004-01-01'),('2004-02-29'); INSERT INTO t1 VALUES('2004-01-01'),('2004-02-29');
......
...@@ -80,7 +80,7 @@ CREATE TABLE result (f1 text(200), f2 char(20)); ...@@ -80,7 +80,7 @@ CREATE TABLE result (f1 text(200), f2 char(20));
set @@sql_mode='traditional'; set @@sql_mode='traditional';
SHOW VARIABLES LIKE 'sql_mode'; SHOW VARIABLES LIKE 'sql_mode';
Variable_name Value Variable_name Value
sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
CREATE PROCEDURE sp1() CREATE PROCEDURE sp1()
BEGIN BEGIN
declare a tinyint; declare a tinyint;
...@@ -97,7 +97,7 @@ END if; ...@@ -97,7 +97,7 @@ END if;
END// END//
SHOW CREATE PROCEDURE sp1; SHOW CREATE PROCEDURE sp1;
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
sp1 STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER CREATE DEFINER=`root`@`localhost` PROCEDURE `sp1`() sp1 STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `sp1`()
BEGIN BEGIN
declare a tinyint; declare a tinyint;
declare count_ int default 1; declare count_ int default 1;
...@@ -117,10 +117,10 @@ Variable_name Value ...@@ -117,10 +117,10 @@ Variable_name Value
sql_mode sql_mode
CALL sp1(); CALL sp1();
Variable_name Value Variable_name Value
sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
SELECT * from result; SELECT * from result;
f1 f2 f1 f2
STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER value restored STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION value restored
SHOW VARIABLES LIKE 'sql_mode'; SHOW VARIABLES LIKE 'sql_mode';
Variable_name Value Variable_name Value
sql_mode sql_mode
...@@ -142,7 +142,7 @@ DROP PROCEDURE IF EXISTS sp2; ...@@ -142,7 +142,7 @@ DROP PROCEDURE IF EXISTS sp2;
... show initial value ... show initial value
SHOW VARIABLES LIKE 'sql_mode'; SHOW VARIABLES LIKE 'sql_mode';
Variable_name Value Variable_name Value
sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
CREATE PROCEDURE sp2() CREATE PROCEDURE sp2()
BEGIN BEGIN
SET @@sql_mode='MAXDB'; SET @@sql_mode='MAXDB';
...@@ -150,7 +150,7 @@ SHOW VARIABLES LIKE 'sql_mode'; ...@@ -150,7 +150,7 @@ SHOW VARIABLES LIKE 'sql_mode';
END// END//
SHOW CREATE PROCEDURE sp2; SHOW CREATE PROCEDURE sp2;
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
sp2 STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER CREATE DEFINER=`root`@`localhost` PROCEDURE `sp2`() sp2 STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `sp2`()
BEGIN BEGIN
SET @@sql_mode='MAXDB'; SET @@sql_mode='MAXDB';
SHOW VARIABLES LIKE 'sql_mode'; SHOW VARIABLES LIKE 'sql_mode';
...@@ -158,7 +158,7 @@ END latin1 latin1_swedish_ci latin1_swedish_ci ...@@ -158,7 +158,7 @@ END latin1 latin1_swedish_ci latin1_swedish_ci
... show value prior calling procedure ... show value prior calling procedure
SHOW VARIABLES LIKE 'sql_mode'; SHOW VARIABLES LIKE 'sql_mode';
Variable_name Value Variable_name Value
sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
... call procedure that changes sql_mode ... call procedure that changes sql_mode
CALL sp2(); CALL sp2();
Variable_name Value Variable_name Value
...@@ -166,7 +166,7 @@ sql_mode PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,MAXDB,NO_KEY_OPTIONS,NO_TABLE_ ...@@ -166,7 +166,7 @@ sql_mode PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,MAXDB,NO_KEY_OPTIONS,NO_TABLE_
... check whether old value is re-set ... check whether old value is re-set
SHOW VARIABLES LIKE 'sql_mode'; SHOW VARIABLES LIKE 'sql_mode';
Variable_name Value Variable_name Value
sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
DROP PROCEDURE sp2; DROP PROCEDURE sp2;
--source suite/funcs_1/storedproc/cleanup_sp_tb.inc --source suite/funcs_1/storedproc/cleanup_sp_tb.inc
......
...@@ -81,7 +81,7 @@ CREATE TABLE result (f1 text(200), f2 char(20)); ...@@ -81,7 +81,7 @@ CREATE TABLE result (f1 text(200), f2 char(20));
set @@sql_mode='traditional'; set @@sql_mode='traditional';
SHOW VARIABLES LIKE 'sql_mode'; SHOW VARIABLES LIKE 'sql_mode';
Variable_name Value Variable_name Value
sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
CREATE PROCEDURE sp1() CREATE PROCEDURE sp1()
BEGIN BEGIN
declare a tinyint; declare a tinyint;
...@@ -98,7 +98,7 @@ END if; ...@@ -98,7 +98,7 @@ END if;
END// END//
SHOW CREATE PROCEDURE sp1; SHOW CREATE PROCEDURE sp1;
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
sp1 STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER CREATE DEFINER=`root`@`localhost` PROCEDURE `sp1`() sp1 STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `sp1`()
BEGIN BEGIN
declare a tinyint; declare a tinyint;
declare count_ int default 1; declare count_ int default 1;
...@@ -118,10 +118,10 @@ Variable_name Value ...@@ -118,10 +118,10 @@ Variable_name Value
sql_mode sql_mode
CALL sp1(); CALL sp1();
Variable_name Value Variable_name Value
sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
SELECT * from result; SELECT * from result;
f1 f2 f1 f2
STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER value restored STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION value restored
SHOW VARIABLES LIKE 'sql_mode'; SHOW VARIABLES LIKE 'sql_mode';
Variable_name Value Variable_name Value
sql_mode sql_mode
...@@ -143,7 +143,7 @@ DROP PROCEDURE IF EXISTS sp2; ...@@ -143,7 +143,7 @@ DROP PROCEDURE IF EXISTS sp2;
... show initial value ... show initial value
SHOW VARIABLES LIKE 'sql_mode'; SHOW VARIABLES LIKE 'sql_mode';
Variable_name Value Variable_name Value
sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
CREATE PROCEDURE sp2() CREATE PROCEDURE sp2()
BEGIN BEGIN
SET @@sql_mode='MAXDB'; SET @@sql_mode='MAXDB';
...@@ -151,7 +151,7 @@ SHOW VARIABLES LIKE 'sql_mode'; ...@@ -151,7 +151,7 @@ SHOW VARIABLES LIKE 'sql_mode';
END// END//
SHOW CREATE PROCEDURE sp2; SHOW CREATE PROCEDURE sp2;
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
sp2 STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER CREATE DEFINER=`root`@`localhost` PROCEDURE `sp2`() sp2 STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `sp2`()
BEGIN BEGIN
SET @@sql_mode='MAXDB'; SET @@sql_mode='MAXDB';
SHOW VARIABLES LIKE 'sql_mode'; SHOW VARIABLES LIKE 'sql_mode';
...@@ -159,7 +159,7 @@ END latin1 latin1_swedish_ci latin1_swedish_ci ...@@ -159,7 +159,7 @@ END latin1 latin1_swedish_ci latin1_swedish_ci
... show value prior calling procedure ... show value prior calling procedure
SHOW VARIABLES LIKE 'sql_mode'; SHOW VARIABLES LIKE 'sql_mode';
Variable_name Value Variable_name Value
sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
... call procedure that changes sql_mode ... call procedure that changes sql_mode
CALL sp2(); CALL sp2();
Variable_name Value Variable_name Value
...@@ -167,7 +167,7 @@ sql_mode PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,MAXDB,NO_KEY_OPTIONS,NO_TABLE_ ...@@ -167,7 +167,7 @@ sql_mode PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,MAXDB,NO_KEY_OPTIONS,NO_TABLE_
... check whether old value is re-set ... check whether old value is re-set
SHOW VARIABLES LIKE 'sql_mode'; SHOW VARIABLES LIKE 'sql_mode';
Variable_name Value Variable_name Value
sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
DROP PROCEDURE sp2; DROP PROCEDURE sp2;
--source suite/funcs_1/storedproc/cleanup_sp_tb.inc --source suite/funcs_1/storedproc/cleanup_sp_tb.inc
......
...@@ -81,7 +81,7 @@ CREATE TABLE result (f1 text(200), f2 char(20)); ...@@ -81,7 +81,7 @@ CREATE TABLE result (f1 text(200), f2 char(20));
set @@sql_mode='traditional'; set @@sql_mode='traditional';
SHOW VARIABLES LIKE 'sql_mode'; SHOW VARIABLES LIKE 'sql_mode';
Variable_name Value Variable_name Value
sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
CREATE PROCEDURE sp1() CREATE PROCEDURE sp1()
BEGIN BEGIN
declare a tinyint; declare a tinyint;
...@@ -98,7 +98,7 @@ END if; ...@@ -98,7 +98,7 @@ END if;
END// END//
SHOW CREATE PROCEDURE sp1; SHOW CREATE PROCEDURE sp1;
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
sp1 STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER CREATE DEFINER=`root`@`localhost` PROCEDURE `sp1`() sp1 STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `sp1`()
BEGIN BEGIN
declare a tinyint; declare a tinyint;
declare count_ int default 1; declare count_ int default 1;
...@@ -118,10 +118,10 @@ Variable_name Value ...@@ -118,10 +118,10 @@ Variable_name Value
sql_mode sql_mode
CALL sp1(); CALL sp1();
Variable_name Value Variable_name Value
sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
SELECT * from result; SELECT * from result;
f1 f2 f1 f2
STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER value restored STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION value restored
SHOW VARIABLES LIKE 'sql_mode'; SHOW VARIABLES LIKE 'sql_mode';
Variable_name Value Variable_name Value
sql_mode sql_mode
...@@ -143,7 +143,7 @@ DROP PROCEDURE IF EXISTS sp2; ...@@ -143,7 +143,7 @@ DROP PROCEDURE IF EXISTS sp2;
... show initial value ... show initial value
SHOW VARIABLES LIKE 'sql_mode'; SHOW VARIABLES LIKE 'sql_mode';
Variable_name Value Variable_name Value
sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
CREATE PROCEDURE sp2() CREATE PROCEDURE sp2()
BEGIN BEGIN
SET @@sql_mode='MAXDB'; SET @@sql_mode='MAXDB';
...@@ -151,7 +151,7 @@ SHOW VARIABLES LIKE 'sql_mode'; ...@@ -151,7 +151,7 @@ SHOW VARIABLES LIKE 'sql_mode';
END// END//
SHOW CREATE PROCEDURE sp2; SHOW CREATE PROCEDURE sp2;
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
sp2 STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER CREATE DEFINER=`root`@`localhost` PROCEDURE `sp2`() sp2 STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `sp2`()
BEGIN BEGIN
SET @@sql_mode='MAXDB'; SET @@sql_mode='MAXDB';
SHOW VARIABLES LIKE 'sql_mode'; SHOW VARIABLES LIKE 'sql_mode';
...@@ -159,7 +159,7 @@ END latin1 latin1_swedish_ci latin1_swedish_ci ...@@ -159,7 +159,7 @@ END latin1 latin1_swedish_ci latin1_swedish_ci
... show value prior calling procedure ... show value prior calling procedure
SHOW VARIABLES LIKE 'sql_mode'; SHOW VARIABLES LIKE 'sql_mode';
Variable_name Value Variable_name Value
sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
... call procedure that changes sql_mode ... call procedure that changes sql_mode
CALL sp2(); CALL sp2();
Variable_name Value Variable_name Value
...@@ -167,7 +167,7 @@ sql_mode PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,MAXDB,NO_KEY_OPTIONS,NO_TABLE_ ...@@ -167,7 +167,7 @@ sql_mode PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,MAXDB,NO_KEY_OPTIONS,NO_TABLE_
... check whether old value is re-set ... check whether old value is re-set
SHOW VARIABLES LIKE 'sql_mode'; SHOW VARIABLES LIKE 'sql_mode';
Variable_name Value Variable_name Value
sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
DROP PROCEDURE sp2; DROP PROCEDURE sp2;
--source suite/funcs_1/storedproc/cleanup_sp_tb.inc --source suite/funcs_1/storedproc/cleanup_sp_tb.inc
......
...@@ -80,7 +80,7 @@ CREATE TABLE result (f1 text(200), f2 char(20)); ...@@ -80,7 +80,7 @@ CREATE TABLE result (f1 text(200), f2 char(20));
set @@sql_mode='traditional'; set @@sql_mode='traditional';
SHOW VARIABLES LIKE 'sql_mode'; SHOW VARIABLES LIKE 'sql_mode';
Variable_name Value Variable_name Value
sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
CREATE PROCEDURE sp1() CREATE PROCEDURE sp1()
BEGIN BEGIN
declare a tinyint; declare a tinyint;
...@@ -97,7 +97,7 @@ END if; ...@@ -97,7 +97,7 @@ END if;
END// END//
SHOW CREATE PROCEDURE sp1; SHOW CREATE PROCEDURE sp1;
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
sp1 STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER CREATE DEFINER=`root`@`localhost` PROCEDURE `sp1`() sp1 STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `sp1`()
BEGIN BEGIN
declare a tinyint; declare a tinyint;
declare count_ int default 1; declare count_ int default 1;
...@@ -117,10 +117,10 @@ Variable_name Value ...@@ -117,10 +117,10 @@ Variable_name Value
sql_mode sql_mode
CALL sp1(); CALL sp1();
Variable_name Value Variable_name Value
sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
SELECT * from result; SELECT * from result;
f1 f2 f1 f2
STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER value restored STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION value restored
SHOW VARIABLES LIKE 'sql_mode'; SHOW VARIABLES LIKE 'sql_mode';
Variable_name Value Variable_name Value
sql_mode sql_mode
...@@ -142,7 +142,7 @@ DROP PROCEDURE IF EXISTS sp2; ...@@ -142,7 +142,7 @@ DROP PROCEDURE IF EXISTS sp2;
... show initial value ... show initial value
SHOW VARIABLES LIKE 'sql_mode'; SHOW VARIABLES LIKE 'sql_mode';
Variable_name Value Variable_name Value
sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
CREATE PROCEDURE sp2() CREATE PROCEDURE sp2()
BEGIN BEGIN
SET @@sql_mode='MAXDB'; SET @@sql_mode='MAXDB';
...@@ -150,7 +150,7 @@ SHOW VARIABLES LIKE 'sql_mode'; ...@@ -150,7 +150,7 @@ SHOW VARIABLES LIKE 'sql_mode';
END// END//
SHOW CREATE PROCEDURE sp2; SHOW CREATE PROCEDURE sp2;
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
sp2 STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER CREATE DEFINER=`root`@`localhost` PROCEDURE `sp2`() sp2 STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `sp2`()
BEGIN BEGIN
SET @@sql_mode='MAXDB'; SET @@sql_mode='MAXDB';
SHOW VARIABLES LIKE 'sql_mode'; SHOW VARIABLES LIKE 'sql_mode';
...@@ -158,7 +158,7 @@ END latin1 latin1_swedish_ci latin1_swedish_ci ...@@ -158,7 +158,7 @@ END latin1 latin1_swedish_ci latin1_swedish_ci
... show value prior calling procedure ... show value prior calling procedure
SHOW VARIABLES LIKE 'sql_mode'; SHOW VARIABLES LIKE 'sql_mode';
Variable_name Value Variable_name Value
sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
... call procedure that changes sql_mode ... call procedure that changes sql_mode
CALL sp2(); CALL sp2();
Variable_name Value Variable_name Value
...@@ -166,7 +166,7 @@ sql_mode PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,MAXDB,NO_KEY_OPTIONS,NO_TABLE_ ...@@ -166,7 +166,7 @@ sql_mode PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,MAXDB,NO_KEY_OPTIONS,NO_TABLE_
... check whether old value is re-set ... check whether old value is re-set
SHOW VARIABLES LIKE 'sql_mode'; SHOW VARIABLES LIKE 'sql_mode';
Variable_name Value Variable_name Value
sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
DROP PROCEDURE sp2; DROP PROCEDURE sp2;
--source suite/funcs_1/storedproc/cleanup_sp_tb.inc --source suite/funcs_1/storedproc/cleanup_sp_tb.inc
......
...@@ -2,6 +2,8 @@ ...@@ -2,6 +2,8 @@
# Tests with the utf8 character set # Tests with the utf8 character set
# #
--source include/have_innodb.inc
--disable_warnings --disable_warnings
drop table if exists t1,t2; drop table if exists t1,t2;
--enable_warnings --enable_warnings
...@@ -256,9 +258,7 @@ drop table t1; ...@@ -256,9 +258,7 @@ drop table t1;
# Bug 4521: unique key prefix interacts poorly with utf8 # Bug 4521: unique key prefix interacts poorly with utf8
# InnoDB: keys with prefix compression, case insensitive collation. # InnoDB: keys with prefix compression, case insensitive collation.
# #
--disable_warnings
create table t1 (c varchar(30) character set utf8, unique(c(10))) engine=innodb; create table t1 (c varchar(30) character set utf8, unique(c(10))) engine=innodb;
--enable_warnings
insert into t1 values ('1'),('2'),('3'),('x'),('y'),('z'); insert into t1 values ('1'),('2'),('3'),('x'),('y'),('z');
insert into t1 values ('aaaaaaaaaa'); insert into t1 values ('aaaaaaaaaa');
--error ER_DUP_ENTRY --error ER_DUP_ENTRY
...@@ -306,9 +306,7 @@ drop table t1; ...@@ -306,9 +306,7 @@ drop table t1;
# Bug 4521: unique key prefix interacts poorly with utf8 # Bug 4521: unique key prefix interacts poorly with utf8
# InnoDB: fixed length keys, case insensitive collation # InnoDB: fixed length keys, case insensitive collation
# #
--disable_warnings
create table t1 (c char(3) character set utf8, unique (c(2))) engine=innodb; create table t1 (c char(3) character set utf8, unique (c(2))) engine=innodb;
--enable_warnings
insert into t1 values ('1'),('2'),('3'),('4'),('x'),('y'),('z'); insert into t1 values ('1'),('2'),('3'),('4'),('x'),('y'),('z');
insert into t1 values ('a'); insert into t1 values ('a');
insert into t1 values ('aa'); insert into t1 values ('aa');
...@@ -383,12 +381,10 @@ drop table t1; ...@@ -383,12 +381,10 @@ drop table t1;
# Bug 4531: unique key prefix interacts poorly with utf8 # Bug 4531: unique key prefix interacts poorly with utf8
# Check BDB, case insensitive collation # Check BDB, case insensitive collation
# #
--disable_warnings
create table t1 ( create table t1 (
c char(10) character set utf8, c char(10) character set utf8,
unique key a (c(1)) unique key a (c(1))
) engine=innodb; ) engine=innodb;
--enable_warnings
insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f'); insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f');
--error ER_DUP_ENTRY --error ER_DUP_ENTRY
insert into t1 values ('aa'); insert into t1 values ('aa');
...@@ -506,12 +502,10 @@ drop table t1; ...@@ -506,12 +502,10 @@ drop table t1;
# Bug 4531: unique key prefix interacts poorly with utf8 # Bug 4531: unique key prefix interacts poorly with utf8
# Check BDB, binary collation # Check BDB, binary collation
# #
--disable_warnings
create table t1 ( create table t1 (
c char(10) character set utf8 collate utf8_bin, c char(10) character set utf8 collate utf8_bin,
unique key a (c(1)) unique key a (c(1))
) engine=innodb; ) engine=innodb;
--enable_warnings
insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f'); insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f');
--error ER_DUP_ENTRY --error ER_DUP_ENTRY
insert into t1 values ('aa'); insert into t1 values ('aa');
...@@ -543,12 +537,10 @@ drop table t1; ...@@ -543,12 +537,10 @@ drop table t1;
# Bug#4594: column index make = failed for gbk, but like works # Bug#4594: column index make = failed for gbk, but like works
# Check InnoDB # Check InnoDB
# #
--disable_warnings
create table t1 ( create table t1 (
str varchar(255) character set utf8 not null, str varchar(255) character set utf8 not null,
key str (str(2)) key str (str(2))
) engine=innodb; ) engine=innodb;
--enable_warnings
INSERT INTO t1 VALUES ('str'); INSERT INTO t1 VALUES ('str');
INSERT INTO t1 VALUES ('str2'); INSERT INTO t1 VALUES ('str2');
select * from t1 where str='str'; select * from t1 where str='str';
...@@ -581,12 +573,10 @@ drop table t1; ...@@ -581,12 +573,10 @@ drop table t1;
# the same for BDB # the same for BDB
# #
--disable_warnings
create table t1 ( create table t1 (
str varchar(255) character set utf8 not null, str varchar(255) character set utf8 not null,
key str (str(2)) key str (str(2))
) engine=innodb; ) engine=innodb;
--enable_warnings
INSERT INTO t1 VALUES ('str'); INSERT INTO t1 VALUES ('str');
INSERT INTO t1 VALUES ('str2'); INSERT INTO t1 VALUES ('str2');
select * from t1 where str='str'; select * from t1 where str='str';
...@@ -603,14 +593,11 @@ DROP TABLE t1; ...@@ -603,14 +593,11 @@ DROP TABLE t1;
# #
# Bug #5723: length(<varchar utf8 field>) returns varying results # Bug #5723: length(<varchar utf8 field>) returns varying results
# #
--disable_warnings
SET NAMES utf8; SET NAMES utf8;
--disable_warnings
CREATE TABLE t1 ( CREATE TABLE t1 (
subject varchar(255) character set utf8 collate utf8_unicode_ci, subject varchar(255) character set utf8 collate utf8_unicode_ci,
p varchar(15) character set utf8 p varchar(15) character set utf8
) ENGINE=InnoDB DEFAULT CHARSET=latin1; ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--enable_warnings
INSERT INTO t1 VALUES ('谷川俊二と申しますが、インターネット予約の会員登録をしましたところ、メールアドレスを間違えてしまい会員IDが受け取ることが出来ませんでした。間違えアドレスはtani-shun@n.vodafone.ne.jpを書き込みました。どうすればよいですか? その他、住所等は間違えありません。連絡ください。よろしくお願いします。m(__)m','040312-000057'); INSERT INTO t1 VALUES ('谷川俊二と申しますが、インターネット予約の会員登録をしましたところ、メールアドレスを間違えてしまい会員IDが受け取ることが出来ませんでした。間違えアドレスはtani-shun@n.vodafone.ne.jpを書き込みました。どうすればよいですか? その他、住所等は間違えありません。連絡ください。よろしくお願いします。m(__)m','040312-000057');
INSERT INTO t1 VALUES ('aaa','bbb'); INSERT INTO t1 VALUES ('aaa','bbb');
SELECT length(subject) FROM t1; SELECT length(subject) FROM t1;
...@@ -661,18 +648,14 @@ DROP TABLE t1; ...@@ -661,18 +648,14 @@ DROP TABLE t1;
# Bug #6019 SELECT tries to use too short prefix index on utf8 data # Bug #6019 SELECT tries to use too short prefix index on utf8 data
# #
set names utf8; set names utf8;
--disable_warnings
create table t1 ( create table t1 (
a int primary key, a int primary key,
b varchar(6), b varchar(6),
index b3(b(3)) index b3(b(3))
) engine=innodb character set=utf8; ) engine=innodb character set=utf8;
--enable_warnings
insert into t1 values(1,'foo'),(2,'foobar'); insert into t1 values(1,'foo'),(2,'foobar');
select * from t1 where b like 'foob%'; select * from t1 where b like 'foob%';
--disable_warnings
alter table t1 engine=innodb; alter table t1 engine=innodb;
--enable_warnings
select * from t1 where b like 'foob%'; select * from t1 where b like 'foob%';
drop table t1; drop table t1;
...@@ -841,14 +824,12 @@ INSERT INTO t1 VALUES ...@@ -841,14 +824,12 @@ INSERT INTO t1 VALUES
(1,'blah','464','aaa','fkc1c9ilc20x0hgae7lx6j09','ERR','ERR Имри.Афимим.Аеимимримдмримрмрирор имримримримр имридм ирбднримрфмририримрфмфмим.Ад.Д имдимримрад.Адимримримрмдиримримримр м.Дадимфшьмримд им.Адимимрн имадми','ИМРИ.АФИМИМ.АЕИМИМРИМДМРИМРМРИРОР',3,'2005-06-01 17:30:43','1234567890'), (1,'blah','464','aaa','fkc1c9ilc20x0hgae7lx6j09','ERR','ERR Имри.Афимим.Аеимимримдмримрмрирор имримримримр имридм ирбднримрфмририримрфмфмим.Ад.Д имдимримрад.Адимримримрмдиримримримр м.Дадимфшьмримд им.Адимимрн имадми','ИМРИ.АФИМИМ.АЕИМИМРИМДМРИМРМРИРОР',3,'2005-06-01 17:30:43','1234567890'),
(2,'blah','464','aaa','haxpl2ilc20x00bj4tt2m5ti','11','11 g','G',3,'2005-06-02 22:43:10','1234567890'); (2,'blah','464','aaa','haxpl2ilc20x00bj4tt2m5ti','11','11 g','G',3,'2005-06-02 22:43:10','1234567890');
--disable_warnings
CREATE TABLE t2 ( CREATE TABLE t2 (
`msisdn` varchar(15) NOT NULL default '', `msisdn` varchar(15) NOT NULL default '',
`operator_id` int(11) NOT NULL default '0', `operator_id` int(11) NOT NULL default '0',
`created` datetime NOT NULL default '0000-00-00 00:00:00', `created` datetime NOT NULL default '0000-00-00 00:00:00',
UNIQUE KEY `PK_user` (`msisdn`) UNIQUE KEY `PK_user` (`msisdn`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8; ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--enable_warnings
INSERT INTO t2 VALUES ('1234567890',2,'2005-05-24 13:53:25'); INSERT INTO t2 VALUES ('1234567890',2,'2005-05-24 13:53:25');
...@@ -1013,10 +994,8 @@ drop table t1; ...@@ -1013,10 +994,8 @@ drop table t1;
# additional tests from duplicate bug#20744 MySQL return no result # additional tests from duplicate bug#20744 MySQL return no result
set names utf8; set names utf8;
--disable_warnings
create table t1 (a varchar(30) not null primary key) create table t1 (a varchar(30) not null primary key)
engine=innodb default character set utf8 collate utf8_general_ci; engine=innodb default character set utf8 collate utf8_general_ci;
--enable_warnings
insert into t1 values ('あいうえおかきくけこさしすせそ'); insert into t1 values ('あいうえおかきくけこさしすせそ');
insert into t1 values ('さしすせそかきくけこあいうえお'); insert into t1 values ('さしすせそかきくけこあいうえお');
select a as gci1 from t1 where a like 'さしすせそかきくけこあいうえお%'; select a as gci1 from t1 where a like 'さしすせそかきくけこあいうえお%';
...@@ -1024,10 +1003,8 @@ select a as gci2 from t1 where a like 'あいうえおかきくけこさしす ...@@ -1024,10 +1003,8 @@ select a as gci2 from t1 where a like 'あいうえおかきくけこさしす
drop table t1; drop table t1;
set names utf8; set names utf8;
--disable_warnings
create table t1 (a varchar(30) not null primary key) create table t1 (a varchar(30) not null primary key)
engine=innodb default character set utf8 collate utf8_unicode_ci; engine=innodb default character set utf8 collate utf8_unicode_ci;
--enable_warnings
insert into t1 values ('あいうえおかきくけこさしすせそ'); insert into t1 values ('あいうえおかきくけこさしすせそ');
insert into t1 values ('さしすせそかきくけこあいうえお'); insert into t1 values ('さしすせそかきくけこあいうえお');
select a as uci1 from t1 where a like 'さしすせそかきくけこあいうえお%'; select a as uci1 from t1 where a like 'さしすせそかきくけこあいうえお%';
...@@ -1035,10 +1012,8 @@ select a as uci2 from t1 where a like 'あいうえおかきくけこさしす ...@@ -1035,10 +1012,8 @@ select a as uci2 from t1 where a like 'あいうえおかきくけこさしす
drop table t1; drop table t1;
set names utf8; set names utf8;
--disable_warnings
create table t1 (a varchar(30) not null primary key) create table t1 (a varchar(30) not null primary key)
engine=innodb default character set utf8 collate utf8_bin; engine=innodb default character set utf8 collate utf8_bin;
--enable_warnings
insert into t1 values ('あいうえおかきくけこさしすせそ'); insert into t1 values ('あいうえおかきくけこさしすせそ');
insert into t1 values ('さしすせそかきくけこあいうえお'); insert into t1 values ('さしすせそかきくけこあいうえお');
select a as bin1 from t1 where a like 'さしすせそかきくけこあいうえお%'; select a as bin1 from t1 where a like 'さしすせそかきくけこあいうえお%';
...@@ -1363,26 +1338,22 @@ select concat(a, if(b>10, 'x' 'x', 'y' 'y')) from t1; ...@@ -1363,26 +1338,22 @@ select concat(a, if(b>10, 'x' 'x', 'y' 'y')) from t1;
select concat(a, if(b>10, 'x' 'æ', 'y' 'ß')) from t1; select concat(a, if(b>10, 'x' 'æ', 'y' 'ß')) from t1;
drop table t1; drop table t1;
# #
# Bug#19960: Inconsistent results when joining # Bug#19960: Inconsistent results when joining
# InnoDB tables using partial UTF8 indexes # InnoDB tables using partial UTF8 indexes
# #
--disable_warnings
CREATE TABLE t1 ( CREATE TABLE t1 (
colA int(11) NOT NULL, colA int(11) NOT NULL,
colB varchar(255) character set utf8 NOT NULL, colB varchar(255) character set utf8 NOT NULL,
PRIMARY KEY (colA) PRIMARY KEY (colA)
) ENGINE=InnoDB DEFAULT CHARSET=latin1; ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--enable_warnings
INSERT INTO t1 (colA, colB) VALUES (1, 'foo'), (2, 'foo bar'); INSERT INTO t1 (colA, colB) VALUES (1, 'foo'), (2, 'foo bar');
--disable_warnings
CREATE TABLE t2 ( CREATE TABLE t2 (
colA int(11) NOT NULL, colA int(11) NOT NULL,
colB varchar(255) character set utf8 NOT NULL, colB varchar(255) character set utf8 NOT NULL,
KEY bad (colA,colB(3)) KEY bad (colA,colB(3))
) ENGINE=InnoDB DEFAULT CHARSET=latin1; ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--enable_warnings
INSERT INTO t2 (colA, colB) VALUES (1, 'foo'),(2, 'foo bar'); INSERT INTO t2 (colA, colB) VALUES (1, 'foo'),(2, 'foo bar');
SELECT * FROM t1 JOIN t2 ON t1.colA=t2.colA AND t1.colB=t2.colB SELECT * FROM t1 JOIN t2 ON t1.colA=t2.colA AND t1.colB=t2.colB
WHERE t1.colA < 3; WHERE t1.colA < 3;
......
...@@ -309,6 +309,21 @@ flush privileges; ...@@ -309,6 +309,21 @@ flush privileges;
--connection default --connection default
drop user mysqltest_32753@localhost; drop user mysqltest_32753@localhost;
#
# Bug#21099 MySQL 5.0.22 silently creates MyISAM tables even though
# InnoDB specified.
#
SET @org_mode=@@sql_mode;
SET @@sql_mode='traditional';
# Agreed change was to add NO_ENGINE_SUBSTITUTION to TRADITIONAL sql mode.
SELECT @@sql_mode LIKE '%NO_ENGINE_SUBSTITUTION%';
SET sql_mode=@org_mode;
# #
# Bug#45100: Incomplete DROP USER in case of SQL_MODE = 'PAD_CHAR_TO_FULL_LENGTH' # Bug#45100: Incomplete DROP USER in case of SQL_MODE = 'PAD_CHAR_TO_FULL_LENGTH'
# #
......
...@@ -3913,7 +3913,8 @@ ulong fix_sql_mode(ulong sql_mode) ...@@ -3913,7 +3913,8 @@ ulong fix_sql_mode(ulong sql_mode)
if (sql_mode & MODE_TRADITIONAL) if (sql_mode & MODE_TRADITIONAL)
sql_mode|= (MODE_STRICT_TRANS_TABLES | MODE_STRICT_ALL_TABLES | sql_mode|= (MODE_STRICT_TRANS_TABLES | MODE_STRICT_ALL_TABLES |
MODE_NO_ZERO_IN_DATE | MODE_NO_ZERO_DATE | MODE_NO_ZERO_IN_DATE | MODE_NO_ZERO_DATE |
MODE_ERROR_FOR_DIVISION_BY_ZERO | MODE_NO_AUTO_CREATE_USER); MODE_ERROR_FOR_DIVISION_BY_ZERO | MODE_NO_AUTO_CREATE_USER |
MODE_NO_ENGINE_SUBSTITUTION);
return sql_mode; return sql_mode;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment