polardbxengine/mysql-test/r/sql_mode.result

819 lines
22 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

drop table if exists t1,t2,v1,v2;
drop view if exists t1,t2,v1,v2;
CREATE TABLE `t1` (
a int not null auto_increment,
`pseudo` varchar(35) character set latin2 NOT NULL default '',
`email` varchar(60) character set latin2 NOT NULL default '',
PRIMARY KEY (a),
UNIQUE KEY `email` USING BTREE (`email`)
) ENGINE=HEAP CHARSET=latin1 ROW_FORMAT DYNAMIC;
set @@sql_mode="";
show variables like 'sql_mode';
Variable_name Value
sql_mode
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) NOT NULL AUTO_INCREMENT,
`pseudo` varchar(35) CHARACTER SET latin2 COLLATE latin2_general_ci NOT NULL DEFAULT '',
`email` varchar(60) CHARACTER SET latin2 COLLATE latin2_general_ci NOT NULL DEFAULT '',
PRIMARY KEY (`a`),
UNIQUE KEY `email` (`email`) USING BTREE
) ENGINE=MEMORY DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
set @@sql_mode="ansi_quotes";
show variables like 'sql_mode';
Variable_name Value
sql_mode ANSI_QUOTES
show create table t1;
Table Create Table
t1 CREATE TABLE "t1" (
"a" int(11) NOT NULL AUTO_INCREMENT,
"pseudo" varchar(35) CHARACTER SET latin2 COLLATE latin2_general_ci NOT NULL DEFAULT '',
"email" varchar(60) CHARACTER SET latin2 COLLATE latin2_general_ci NOT NULL DEFAULT '',
PRIMARY KEY ("a"),
UNIQUE KEY "email" ("email") USING BTREE
) ENGINE=MEMORY DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
drop table t1;
set session sql_mode = '';
create table t1 ( min_num dec(6,6) default .000001);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`min_num` decimal(6,6) DEFAULT '0.000001'
) ENGINE=ENGINE DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
drop table t1 ;
set session sql_mode = 'IGNORE_SPACE';
create table t1 ( min_num dec(6,6) default 0.000001);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`min_num` decimal(6,6) DEFAULT '0.000001'
) ENGINE=ENGINE DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
drop table t1 ;
create table t1 ( min_num dec(6,6) default .000001);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`min_num` decimal(6,6) DEFAULT '0.000001'
) ENGINE=ENGINE DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
drop table t1 ;
set @@SQL_MODE=NULL;
ERROR 42000: Variable 'sql_mode' can't be set to the value of 'NULL'
set session sql_mode=ansi;
create table t1
(f1 integer auto_increment primary key,
f2 timestamp not null default current_timestamp on update current_timestamp);
show create table t1;
Table Create Table
t1 CREATE TABLE "t1" (
"f1" int(11) NOT NULL AUTO_INCREMENT,
"f2" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY ("f1")
)
drop table t1;
SET @OLD_SQL_MODE=@@SQL_MODE, @@SQL_MODE='';
show local variables like 'SQL_MODE';
Variable_name Value
sql_mode
CREATE TABLE t1 (p int not null auto_increment, a varchar(20), primary key(p)) charset latin1;
INSERT t1 (a) VALUES
('\\'),
('\n'),
('\b'),
('\r'),
('\t'),
('\x'),
('\a'),
('\aa'),
('\\a'),
('\\aa'),
('_'),
('\_'),
('\\_'),
('\\\_'),
('\\\\_'),
('%'),
('\%'),
('\\%'),
('\\\%'),
('\\\\%')
;
SELECT p, hex(a) FROM t1;
p hex(a)
1 5C
2 0A
3 08
4 0D
5 09
6 78
7 61
8 6161
9 5C61
10 5C6161
11 5F
12 5C5F
13 5C5F
14 5C5C5F
15 5C5C5F
16 25
17 5C25
18 5C25
19 5C5C25
20 5C5C25
delete from t1 where a in ('\n','\r','\t', '\b');
select
masks.p,
masks.a as mask,
examples.a as example
from
t1 as masks
left join t1 as examples on examples.a LIKE masks.a
order by masks.p, example;
p mask example
1 \ \
6 x x
7 a a
8 aa aa
9 \a a
10 \aa aa
11 _ %
11 _ a
11 _ x
11 _ \
11 _ _
12 \_ _
13 \_ _
14 \\_ \%
14 \\_ \%
14 \\_ \a
14 \\_ \_
14 \\_ \_
15 \\_ \%
15 \\_ \%
15 \\_ \a
15 \\_ \_
15 \\_ \_
16 % %
16 % a
16 % aa
16 % x
16 % \
16 % \%
16 % \%
16 % \a
16 % \aa
16 % \\%
16 % \\%
16 % \\_
16 % \\_
16 % \_
16 % \_
16 % _
17 \% %
18 \% %
19 \\% \
19 \\% \%
19 \\% \%
19 \\% \a
19 \\% \aa
19 \\% \\%
19 \\% \\%
19 \\% \\_
19 \\% \\_
19 \\% \_
19 \\% \_
20 \\% \
20 \\% \%
20 \\% \%
20 \\% \a
20 \\% \aa
20 \\% \\%
20 \\% \\%
20 \\% \\_
20 \\% \\_
20 \\% \_
20 \\% \_
DROP TABLE t1;
SET @@SQL_MODE='NO_BACKSLASH_ESCAPES';
show local variables like 'SQL_MODE';
Variable_name Value
sql_mode NO_BACKSLASH_ESCAPES
CREATE TABLE t1 (p int not null auto_increment, a varchar(20), primary key(p)) charset latin1;
INSERT t1 (a) VALUES
('\\'),
('\n'),
('\b'),
('\r'),
('\t'),
('\x'),
('\a'),
('\aa'),
('\\a'),
('\\aa'),
('_'),
('\_'),
('\\_'),
('\\\_'),
('\\\\_'),
('%'),
('\%'),
('\\%'),
('\\\%'),
('\\\\%')
;
SELECT p, hex(a) FROM t1;
p hex(a)
1 5C5C
2 5C6E
3 5C62
4 5C72
5 5C74
6 5C78
7 5C61
8 5C6161
9 5C5C61
10 5C5C6161
11 5F
12 5C5F
13 5C5C5F
14 5C5C5C5F
15 5C5C5C5C5F
16 25
17 5C25
18 5C5C25
19 5C5C5C25
20 5C5C5C5C25
delete from t1 where a in ('\n','\r','\t', '\b');
select
masks.p,
masks.a as mask,
examples.a as example
from
t1 as masks
left join t1 as examples on examples.a LIKE masks.a
order by masks.p, example;
p mask example
1 \\ \\
6 \x \x
7 \a \a
8 \aa \aa
9 \\a \\a
10 \\aa \\aa
11 _ %
11 _ _
12 \_ \%
12 \_ \a
12 \_ \x
12 \_ \\
12 \_ \_
13 \\_ \\%
13 \\_ \\a
13 \\_ \\_
14 \\\_ \\\%
14 \\\_ \\\_
15 \\\\_ \\\\%
15 \\\\_ \\\\_
16 % %
16 % \%
16 % \a
16 % \aa
16 % \x
16 % \\
16 % \\%
16 % \\a
16 % \\aa
16 % \\\%
16 % \\\\%
16 % \\\\_
16 % \\\_
16 % \\_
16 % \_
16 % _
17 \% \%
17 \% \a
17 \% \aa
17 \% \x
17 \% \\
17 \% \\%
17 \% \\a
17 \% \\aa
17 \% \\\%
17 \% \\\\%
17 \% \\\\_
17 \% \\\_
17 \% \\_
17 \% \_
18 \\% \\
18 \\% \\%
18 \\% \\a
18 \\% \\aa
18 \\% \\\%
18 \\% \\\\%
18 \\% \\\\_
18 \\% \\\_
18 \\% \\_
19 \\\% \\\%
19 \\\% \\\\%
19 \\\% \\\\_
19 \\\% \\\_
20 \\\\% \\\\%
20 \\\\% \\\\_
DROP TABLE t1;
SET @@SQL_MODE='NO_BACKSLASH_ESCAPES';
SELECT 'a\\b', 'a\\\"b', 'a''\\b', 'a''\\\"b';
a\\b a\\\"b a'\\b a'\\\"b
a\\b a\\\"b a'\\b a'\\\"b
SELECT "a\\b", "a\\\'b", "a""\\b", "a""\\\'b";
a\\b a\\\'b a"\\b a"\\\'b
a\\b a\\\'b a"\\b a"\\\'b
SET @@SQL_MODE='';
SELECT 'a\\b', 'a\\\"b', 'a''\\b', 'a''\\\"b';
a\b a\"b a'\b a'\"b
a\b a\"b a'\b a'\"b
SELECT "a\\b", "a\\\'b", "a""\\b", "a""\\\'b";
a\b a\'b a"\b a"\'b
a\b a\'b a"\b a"\'b
SET @@SQL_MODE='';
create function `foo` () returns int return 5;
show create function `foo`;
Function sql_mode Create Function character_set_client collation_connection Database Collation
foo CREATE DEFINER=`root`@`localhost` FUNCTION `foo`() RETURNS int(11)
return 5 utf8mb4 utf8mb4_0900_ai_ci utf8mb4_0900_ai_ci
SET @@SQL_MODE='ANSI_QUOTES';
show create function `foo`;
Function sql_mode Create Function character_set_client collation_connection Database Collation
foo CREATE DEFINER=`root`@`localhost` FUNCTION `foo`() RETURNS int(11)
return 5 utf8mb4 utf8mb4_0900_ai_ci utf8mb4_0900_ai_ci
drop function `foo`;
create function `foo` () returns int return 5;
show create function `foo`;
Function sql_mode Create Function character_set_client collation_connection Database Collation
foo ANSI_QUOTES CREATE DEFINER="root"@"localhost" FUNCTION "foo"() RETURNS int(11)
return 5 utf8mb4 utf8mb4_0900_ai_ci utf8mb4_0900_ai_ci
SET @@SQL_MODE='';
show create function `foo`;
Function sql_mode Create Function character_set_client collation_connection Database Collation
foo ANSI_QUOTES CREATE DEFINER="root"@"localhost" FUNCTION "foo"() RETURNS int(11)
return 5 utf8mb4 utf8mb4_0900_ai_ci utf8mb4_0900_ai_ci
drop function `foo`;
SET @@SQL_MODE='';
create table t1 (a int);
create table t2 (a int);
create view v1 as select a from t1;
show create view v1;
View Create View character_set_client collation_connection
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` utf8mb4 utf8mb4_0900_ai_ci
SET @@SQL_MODE='ANSI_QUOTES';
show create view v1;
View Create View character_set_client collation_connection
v1 CREATE ALGORITHM=UNDEFINED DEFINER="root"@"localhost" SQL SECURITY DEFINER VIEW "v1" AS select "t1"."a" AS "a" from "t1" utf8mb4 utf8mb4_0900_ai_ci
create view v2 as select a from t2 where a in (select a from v1);
drop view v2, v1;
drop table t1, t2;
select @@sql_mode;
@@sql_mode
ANSI_QUOTES
set sql_mode=2097152;
Warnings:
Warning 3135 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
select @@sql_mode;
@@sql_mode
STRICT_TRANS_TABLES
set sql_mode=4194304;
Warnings:
Warning 3135 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
select @@sql_mode;
@@sql_mode
STRICT_ALL_TABLES
set sql_mode=32+(65536*4);
select @@sql_mode;
@@sql_mode
REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ONLY_FULL_GROUP_BY,ANSI
set sql_mode=4294967296*2;
ERROR 42000: Variable 'sql_mode' can't be set to the value of '8589934592'
select @@sql_mode;
@@sql_mode
REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ONLY_FULL_GROUP_BY,ANSI
set sql_mode=PAD_CHAR_TO_FULL_LENGTH;
Warnings:
Warning 3090 Changing sql mode 'PAD_CHAR_TO_FULL_LENGTH' is deprecated. It will be removed in a future release.
create table t1 (a int auto_increment primary key, b char(5));
insert into t1 (b) values('a'),('b\t'),('c ');
select concat('x',b,'x') from t1;
concat('x',b,'x')
xa x
xb x
xc x
set sql_mode=0;
select concat('x',b,'x') from t1;
concat('x',b,'x')
xax
xb x
xcx
drop table t1;
SET @@SQL_MODE=@OLD_SQL_MODE;
create user mysqltest_32753@localhost;
set @OLD_SQL_MODE=@@SESSION.SQL_MODE;
set session sql_mode='PAD_CHAR_TO_FULL_LENGTH';
Warnings:
Warning 3090 Changing sql mode 'PAD_CHAR_TO_FULL_LENGTH' is deprecated. It will be removed in a future release.
flush privileges;
select current_user();
current_user()
mysqltest_32753@localhost
set session sql_mode=@OLD_SQL_MODE;
flush privileges;
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;
CREATE USER 'user_PCTFL'@'localhost' identified by 'PWD';
CREATE USER 'user_no_PCTFL'@'localhost' identified by 'PWD';
CREATE TABLE t1 (f1 BIGINT);
CREATE TABLE t2 (f1 CHAR(3) NOT NULL, f2 CHAR(20));
GRANT ALL ON t1 TO 'user_PCTFL'@'localhost','user_no_PCTFL'@'localhost';
GRANT SELECT(f1) ON t2 TO 'user_PCTFL'@'localhost','user_no_PCTFL'@'localhost';
SET @OLD_SQL_MODE = @@SESSION.SQL_MODE;
SET SESSION SQL_MODE = 'PAD_CHAR_TO_FULL_LENGTH';
Warnings:
Warning 3090 Changing sql mode 'PAD_CHAR_TO_FULL_LENGTH' is deprecated. It will be removed in a future release.
DROP USER 'user_PCTFL'@'localhost';
SET SESSION SQL_MODE = @OLD_SQL_MODE;
DROP USER 'user_no_PCTFL'@'localhost';
FLUSH PRIVILEGES;
SELECT * FROM mysql.db WHERE Host = 'localhost' AND User LIKE 'user_%PCTFL';
Host Db User Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Grant_priv References_priv Index_priv Alter_priv Create_tmp_table_priv Lock_tables_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Execute_priv Event_priv Trigger_priv
SELECT * FROM mysql.tables_priv WHERE Host = 'localhost' AND User LIKE 'user_%PCTFL';
Host Db User Table_name Grantor Timestamp Table_priv Column_priv
SELECT * FROM mysql.columns_priv WHERE Host = 'localhost' AND User LIKE 'user_%PCTFL';
Host Db User Table_name Column_name Timestamp Column_priv
DROP TABLE t1;
DROP TABLE t2;
#
# Test for Bug#12601974 - STORED PROCEDURE SQL_MODE=NO_BACKSLASH_ESCAPES
# IGNORED AND BREAKS REPLICATION
#
DROP TABLE IF EXISTS test_table;
DROP FUNCTION IF EXISTS test_function;
CREATE TABLE test_table (c1 CHAR(50));
SET @org_mode=@@sql_mode;
SET @@sql_mode='';
PREPARE insert_stmt FROM 'INSERT INTO test_table VALUES (?)';
PREPARE update_stmt FROM 'UPDATE test_table SET c1= ? WHERE c1= ?';
CREATE FUNCTION test_function(var CHAR(50)) RETURNS CHAR(50)
BEGIN
DECLARE char_val CHAR(50);
SELECT c1 INTO char_val FROM test_table WHERE c1=var;
RETURN char_val;
END
$
SET @var1='abcd\'ef';
SET @var2='abcd\"ef';
SET @var3='abcd\bef';
SET @var4='abcd\nef';
SET @var5='abcd\ref';
SET @var6='abcd\tef';
SET @var7='abcd\\ef';
SET @var8='abcd\%ef';
SET @var9='abcd\_ef';
SET @to_var1='wxyz\'ef';
SET @to_var2='wxyz\"ef';
SET @to_var3='wxyz\bef';
SET @to_var4='wxyz\nef';
SET @to_var5='wxyz\ref';
SET @to_var6='wxyz\tef';
SET @to_var7='wxyz\\ef';
SET @to_var8='wxyz\%ef';
SET @to_var9='wxyz\_ef';
# STRING LILTERAL WITH BACKSLASH IN PREPARE STATEMENT
EXECUTE insert_stmt USING @var1;
EXECUTE insert_stmt USING @var2;
EXECUTE insert_stmt USING @var3;
EXECUTE insert_stmt USING @var4;
EXECUTE insert_stmt USING @var5;
EXECUTE insert_stmt USING @var6;
EXECUTE insert_stmt USING @var7;
EXECUTE insert_stmt USING @var8;
EXECUTE insert_stmt USING @var9;
SELECT * FROM test_table;
c1
abcd'ef
abcd"ef
abcdef
abcd
ef
abcd
ef
abcd ef
abcd\ef
abcd\%ef
abcd\_ef
EXECUTE update_stmt USING @to_var1, @var1;
EXECUTE update_stmt USING @to_var2, @var2;
EXECUTE update_stmt USING @to_var3, @var3;
EXECUTE update_stmt USING @to_var4, @var4;
EXECUTE update_stmt USING @to_var5, @var5;
EXECUTE update_stmt USING @to_var6, @var6;
EXECUTE update_stmt USING @to_var7, @var7;
EXECUTE update_stmt USING @to_var8, @var8;
EXECUTE update_stmt USING @to_var9, @var9;
SELECT * FROM test_table;
c1
wxyz'ef
wxyz"ef
wxyzef
wxyz
ef
wxyz
ef
wxyz ef
wxyz\ef
wxyz\%ef
wxyz\_ef
# END OF CASE - STRING LILTERAL WITH BACKSLASH IN PREPARE STATEMENT
# STRING LILTERAL WITH BACKSLASH IN FUNCTION RETURNING STRING
select test_function(@to_var1);
test_function(@to_var1)
wxyz'ef
SELECT test_function(@to_var2);
test_function(@to_var2)
wxyz"ef
SELECT test_function(@to_var3);
test_function(@to_var3)
wxyzef
SELECT test_function(@to_var4);
test_function(@to_var4)
wxyz
ef
SELECT test_function(@to_var5);
test_function(@to_var5)
wxyz
ef
SELECT test_function(@to_var6);
test_function(@to_var6)
wxyz ef
SELECT test_function(@to_var7);
test_function(@to_var7)
wxyz\ef
SELECT test_function(@to_var8);
test_function(@to_var8)
wxyz\%ef
SELECT test_function(@to_var9);
test_function(@to_var9)
wxyz\_ef
# END OF CASE - STRING LILTERAL WITH BACKSLASH IN FUNCTION RETURNING STRING
DELETE FROM test_table;
DROP FUNCTION test_function;
SET @@sql_mode='NO_BACKSLASH_ESCAPES';
CREATE FUNCTION test_function(var CHAR(50)) RETURNS CHAR(50)
BEGIN
DECLARE char_val CHAR(50);
SELECT c1 INTO char_val FROM test_table WHERE c1=var;
RETURN char_val;
END
$
# STRING LILTERAL WITH BACKSLASH IN PREPARE STATEMENT
EXECUTE insert_stmt USING @var1;
EXECUTE insert_stmt USING @var2;
EXECUTE insert_stmt USING @var3;
EXECUTE insert_stmt USING @var4;
EXECUTE insert_stmt USING @var5;
EXECUTE insert_stmt USING @var6;
EXECUTE insert_stmt USING @var7;
EXECUTE insert_stmt USING @var8;
EXECUTE insert_stmt USING @var9;
SELECT * FROM test_table;
c1
abcd'ef
abcd"ef
abcdef
abcd
ef
abcd
ef
abcd ef
abcd\ef
abcd\%ef
abcd\_ef
EXECUTE update_stmt USING @to_var1, @var1;
EXECUTE update_stmt USING @to_var2, @var2;
EXECUTE update_stmt USING @to_var3, @var3;
EXECUTE update_stmt USING @to_var4, @var4;
EXECUTE update_stmt USING @to_var5, @var5;
EXECUTE update_stmt USING @to_var6, @var6;
EXECUTE update_stmt USING @to_var7, @var7;
EXECUTE update_stmt USING @to_var8, @var8;
EXECUTE update_stmt USING @to_var9, @var9;
SELECT * FROM test_table;
c1
wxyz'ef
wxyz"ef
wxyzef
wxyz
ef
wxyz
ef
wxyz ef
wxyz\ef
wxyz\%ef
wxyz\_ef
# END OF CASE - STRING LILTERAL WITH BACKSLASH IN PREPARE STATEMENT
# STRING LILTERAL WITH BACKSLASH IN FUNCTION RETURNING STRING
select test_function(@to_var1);
test_function(@to_var1)
wxyz'ef
SELECT test_function(@to_var2);
test_function(@to_var2)
wxyz"ef
SELECT test_function(@to_var3);
test_function(@to_var3)
wxyzef
SELECT test_function(@to_var4);
test_function(@to_var4)
wxyz
ef
SELECT test_function(@to_var5);
test_function(@to_var5)
wxyz
ef
SELECT test_function(@to_var6);
test_function(@to_var6)
wxyz ef
SELECT test_function(@to_var7);
test_function(@to_var7)
wxyz\ef
SELECT test_function(@to_var8);
test_function(@to_var8)
wxyz\%ef
SELECT test_function(@to_var9);
test_function(@to_var9)
wxyz\_ef
# END OF CASE - STRING LILTERAL WITH BACKSLASH IN FUNCTION RETURNING STRING
DROP TABLE test_table;
DROP FUNCTION test_function;
SET @@sql_mode= @org_mode;
#End of Test for Bug#12601974
#
# BUG#18311187 - SQL_MODE IS CHANGED TO WRONG VALUE AFTER DUMP/DATA
# UPGRADE FOR TRIGGERS
#
SET @org_mode= @@sql_mode;
# NO_ZERO_DATE, NO_ZERO_IN_DATE and ERROR_FOR_DIVISION_BY_ZERO modes
# are removed in 5.7 and their functionality is merged with STRICT mode.
# Setting these modes in 5.7 will give warning and have no effect.
SET sql_mode= 'NO_ZERO_DATE';
Warnings:
Warning 3135 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
SELECT @@sql_mode;
@@sql_mode
NO_ZERO_DATE
SET sql_mode= 'NO_ZERO_IN_DATE';
Warnings:
Warning 3135 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
SELECT @@sql_mode;
@@sql_mode
NO_ZERO_IN_DATE
SET sql_mode= 'ERROR_FOR_DIVISION_BY_ZERO';
Warnings:
Warning 3135 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
SELECT @@sql_mode;
@@sql_mode
ERROR_FOR_DIVISION_BY_ZERO
#
# Restore sql mode
#
SET sql_mode= @org_mode;
#
# Test for Bug#12601974 - STORED PROCEDURE SQL_MODE=NO_BACKSLASH_ESCAPES
# IGNORED AND BREAKS REPLICATION
#
SET @org_mode=@@sql_mode;
SET @@sql_mode='';
# USER NAME CONTAINING BACKSLASH IN CREATE USER OPERATION
CREATE USER 'user\'s_12601974'@'localhost';
CREATE USER 'user\'s_12601974'@'localhost';
ERROR HY000: Operation CREATE USER failed for 'user\'s_12601974'@'localhost'
DROP USER 'user\'s_12601974'@'localhost';
CREATE USER 'user\"s_12601974'@'localhost';
CREATE USER 'user\"s_12601974'@'localhost';
ERROR HY000: Operation CREATE USER failed for 'user\"s_12601974'@'localhost'
DROP USER 'user\"s_12601974'@'localhost';
CREATE USER 'user\bs_12601974'@'localhost';
CREATE USER 'user\bs_12601974'@'localhost';
ERROR HY000: Operation CREATE USER failed for 'users_12601974'@'localhost'
DROP USER 'user\bs_12601974'@'localhost';
CREATE USER 'user\ns_12601974'@'localhost';
CREATE USER 'user\ns_12601974'@'localhost';
ERROR HY000: Operation CREATE USER failed for 'user\ns_12601974'@'localhost'
DROP USER 'user\ns_12601974'@'localhost';
CREATE USER 'user\rs_12601974'@'localhost';
CREATE USER 'user\rs_12601974'@'localhost';
ERROR HY000: Operation CREATE USER failed for 'user\rs_12601974'@'localhost'
DROP USER 'user\rs_12601974'@'localhost';
CREATE USER 'user\ts_12601974'@'localhost';
CREATE USER 'user\ts_12601974'@'localhost';
ERROR HY000: Operation CREATE USER failed for 'user s_12601974'@'localhost'
DROP USER 'user\ts_12601974'@'localhost';
CREATE USER 'user\\s_12601974'@'localhost';
CREATE USER 'user\\s_12601974'@'localhost';
ERROR HY000: Operation CREATE USER failed for 'user\\s_12601974'@'localhost'
DROP USER 'user\\s_12601974'@'localhost';
CREATE USER 'user\%s_12601974'@'localhost';
CREATE USER 'user\%s_12601974'@'localhost';
ERROR HY000: Operation CREATE USER failed for 'user\\%s_12601974'@'localhost'
DROP USER 'user\%s_12601974'@'localhost';
CREATE USER 'user\_s_12601974'@'localhost';
CREATE USER 'user\_s_12601974'@'localhost';
ERROR HY000: Operation CREATE USER failed for 'user\\_s_12601974'@'localhost'
DROP USER 'user\_s_12601974'@'localhost';
# END OF CASE - USER NAME CONTAINING BACKSLASH IN CREATE USER OPERATION
SET @@sql_mode='NO_BACKSLASH_ESCAPES';
# USER NAME CONTAINING BACKSLASH IN DROP USER OPERATION
CREATE USER 'user\"s_12601974'@'localhost';
CREATE USER 'user\"s_12601974'@'localhost';
ERROR HY000: Operation CREATE USER failed for 'user\"s_12601974'@'localhost'
DROP USER 'user\"s_12601974'@'localhost';
CREATE USER 'user\bs_12601974'@'localhost';
CREATE USER 'user\bs_12601974'@'localhost';
ERROR HY000: Operation CREATE USER failed for 'user\bs_12601974'@'localhost'
DROP USER 'user\bs_12601974'@'localhost';
CREATE USER 'user\ns_12601974'@'localhost';
CREATE USER 'user\ns_12601974'@'localhost';
ERROR HY000: Operation CREATE USER failed for 'user\ns_12601974'@'localhost'
DROP USER 'user\ns_12601974'@'localhost';
CREATE USER 'user\rs_12601974'@'localhost';
CREATE USER 'user\rs_12601974'@'localhost';
ERROR HY000: Operation CREATE USER failed for 'user\rs_12601974'@'localhost'
DROP USER 'user\rs_12601974'@'localhost';
CREATE USER 'user\ts_12601974'@'localhost';
CREATE USER 'user\ts_12601974'@'localhost';
ERROR HY000: Operation CREATE USER failed for 'user\ts_12601974'@'localhost'
DROP USER 'user\ts_12601974'@'localhost';
CREATE USER 'user\\s_12601974'@'localhost';
CREATE USER 'user\\s_12601974'@'localhost';
ERROR HY000: Operation CREATE USER failed for 'user\\s_12601974'@'localhost'
DROP USER 'user\\s_12601974'@'localhost';
CREATE USER 'user\%s_12601974'@'localhost';
CREATE USER 'user\%s_12601974'@'localhost';
ERROR HY000: Operation CREATE USER failed for 'user\%s_12601974'@'localhost'
DROP USER 'user\%s_12601974'@'localhost';
CREATE USER 'user\%s_12601974'@'localhost';
CREATE USER 'user\%s_12601974'@'localhost';
ERROR HY000: Operation CREATE USER failed for 'user\%s_12601974'@'localhost'
DROP USER 'user\%s_12601974'@'localhost';
CREATE USER 'user\_s_12601974'@'localhost';
CREATE USER 'user\_s_12601974'@'localhost';
ERROR HY000: Operation CREATE USER failed for 'user\_s_12601974'@'localhost'
DROP USER 'user\_s_12601974'@'localhost';
# END OF CASE - USER NAME CONTAINING BACKSLASH IN CREATE USER OPERATION
SET @@sql_mode= @org_mode;
#End of Test for Bug#12601974
Bug#28546855 EXECUTE STATEMENT HAVE TO CHECK STRICT_TRANS_TABLES MODE
SELECT '\'';
'
'
SET SQL_MODE=DEFAULT;
CREATE TABLE test(id INT, count DOUBLE);
INSERT INTO test VALUES (1,0), (2,0);
always worked
UPDATE test SET count = count + 1 WHERE id = '1invalid';
ERROR 22007: Truncated incorrect DOUBLE value: '1invalid'
PREPARE stmt FROM 'UPDATE test SET count = count + 1 WHERE id = ?';
SET @a = '1invalid';
failed to give an error
EXECUTE stmt USING @a;
ERROR 22007: Truncated incorrect DOUBLE value: '1invalid'
SET SQL_MODE='';
EXECUTE stmt USING @a;
Warnings:
Warning 1292 Truncated incorrect DOUBLE value: '1invalid'
SELECT * FROM test;
id count
1 1
2 0
SET SQL_MODE=DEFAULT;
DROP TABLE test;
#
# Bug#29287785: PASSWORD IS NOT UPDATED WITHOUT ERRORS WHEN
# SQL MODE IS PAD_CHAR_TO_FULL_LENGTH
#
CREATE USER 'user1'@'localhost';
SET sql_mode= 'PAD_CHAR_TO_FULL_LENGTH';
Warnings:
Warning 3090 Changing sql mode 'PAD_CHAR_TO_FULL_LENGTH' is deprecated. It will be removed in a future release.
SET PASSWORD FOR 'user1'@'localhost'= 'abc';
SELECT LENGTH(authentication_string) FROM mysql.user WHERE user= 'user1';
LENGTH(authentication_string)
70
DROP USER 'user1'@'localhost';
SET sql_mode= DEFAULT;