diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 18:00:34 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 18:00:34 +0000 |
commit | 3f619478f796eddbba6e39502fe941b285dd97b1 (patch) | |
tree | e2c7b5777f728320e5b5542b6213fd3591ba51e2 /mysql-test/main/warnings.test | |
parent | Initial commit. (diff) | |
download | mariadb-3f619478f796eddbba6e39502fe941b285dd97b1.tar.xz mariadb-3f619478f796eddbba6e39502fe941b285dd97b1.zip |
Adding upstream version 1:10.11.6.upstream/1%10.11.6upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'mysql-test/main/warnings.test')
-rw-r--r-- | mysql-test/main/warnings.test | 300 |
1 files changed, 300 insertions, 0 deletions
diff --git a/mysql-test/main/warnings.test b/mysql-test/main/warnings.test new file mode 100644 index 00000000..9360d32f --- /dev/null +++ b/mysql-test/main/warnings.test @@ -0,0 +1,300 @@ +# +# Test some warnings +# +--disable_warnings +drop table if exists t1, t2; +--enable_warnings +SET SQL_WARNINGS=1; + +create table t1 (a int); +--error 1050 +create table t1 (a int); +show count(*) errors; +show errors; +show warnings; +--error 1115 +create table t2(a int) default charset qwerty; +show count(*) errors; +show errors; +--error 1064 +create table t (i); +show count(*) errors; +show errors; +insert into t1 values (1); +insert ignore into t1 values ("hej"); +insert ignore into t1 values ("hej"),("då"); +set SQL_WARNINGS=1; +insert ignore into t1 values ("hej"); +insert ignore into t1 values ("hej"),("då"); +drop table t1; +set SQL_WARNINGS=0; + +# +# Test other warnings +# + +drop temporary table if exists not_exists; +drop table if exists not_exists_table; +show warnings limit 1; +drop database if exists not_exists_db; +show count(*) warnings; +create table t1(id int); +create table if not exists t1(id int); +--disable_ps_protocol +select @@warning_count; +--enable_ps_protocol +drop table t1; + +# +# Test warnings for LOAD DATA INFILE +# + +create table t1(a tinyint, b int not null, c date, d char(5)); +load data infile '../../std_data/warnings_loaddata.dat' into table t1 fields terminated by ','; +# PS doesn't work good with @@warning_count +--disable_ps_protocol +select @@warning_count; +--enable_ps_protocol +drop table t1; + +# +# Warnings from basic INSERT, UPDATE and ALTER commands +# + +create table t1(a tinyint NOT NULL, b tinyint unsigned, c char(5)); +insert ignore into t1 values(NULL,100,'mysql'),(10,-1,'mysql ab'),(500,256,'open source'),(20,NULL,'test'); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR +alter table t1 modify c char(4); +alter table t1 add d char(2); +update ignore t1 set a=NULL where a=10; +update ignore t1 set c='mysql ab' where c='test'; +update ignore t1 set d=c; +create table t2(a tinyint NOT NULL, b char(3)); +insert ignore into t2 select b,c from t1; +insert ignore into t2(b) values('mysqlab'); +set sql_warnings=1; +insert ignore into t2(b) values('mysqlab'); +set sql_warnings=0; +drop table t1, t2; + +# +# Test for max_error_count +# + +create table t1(a char(10)); +let $1=50; +--disable_query_log +begin; +while ($1) +{ + eval insert into t1 values('mysql ab'); + dec $1; +} +commit; +--enable_query_log +alter table t1 add b char; +set max_error_count=10; +update ignore t1 set b=a; +--disable_ps_protocol +select @@warning_count; +--enable_ps_protocol + +# Bug#9072 +set max_error_count=0; +show variables like 'max_error_count'; +update ignore t1 set b='hi'; +--disable_ps_protocol +select @@warning_count; +--enable_ps_protocol +show warnings; +set max_error_count=65535; +show variables like 'max_error_count'; +set max_error_count=10; +show variables like 'max_error_count'; + +drop table t1; + +# +# Tests for show warnings limit a, b +# +create table t1 (a int); +insert into t1 (a) values (1), (2), (3), (4), (5), (6), (7), (8), (9), (10); +# should generate 10 warnings +update ignore t1 set a='abc'; +show warnings limit 2, 1; +show warnings limit 0, 10; +show warnings limit 9, 1; +show warnings limit 10, 1; +show warnings limit 9, 2; +show warnings limit 0, 0; +show warnings limit 1; +show warnings limit 0; +show warnings limit 1, 0; +# make sure behaviour is consistent with select ... limit +select * from t1 limit 0; +select * from t1 limit 1, 0; +select * from t1 limit 0, 0; +drop table t1; + +--echo End of 4.1 tests + +# +# Bug#20778: strange characters in warning message 1366 when called in SP +# + +CREATE TABLE t1( f1 CHAR(20) ); +CREATE TABLE t2( f1 CHAR(20), f2 CHAR(25) ); +CREATE TABLE t3( f1 CHAR(20), f2 CHAR(25), f3 DATE ); + +INSERT INTO t1 VALUES ( 'a`' ); +INSERT INTO t2 VALUES ( 'a`', 'a`' ); +INSERT INTO t3 VALUES ( 'a`', 'a`', '1000-01-1' ); + +DROP PROCEDURE IF EXISTS sp1; +DROP PROCEDURE IF EXISTS sp2; +DROP PROCEDURE IF EXISTS sp3; +SET sql_mode = ''; +delimiter //; +CREATE PROCEDURE sp1() +BEGIN + DECLARE x NUMERIC ZEROFILL; + SELECT f1 INTO x FROM t1 LIMIT 1; +END// +CREATE PROCEDURE sp2() +BEGIN + DECLARE x NUMERIC ZEROFILL; + SELECT f1 INTO x FROM t2 LIMIT 1; +END// +CREATE PROCEDURE sp3() +BEGIN + DECLARE x NUMERIC ZEROFILL; + SELECT f1 INTO x FROM t3 LIMIT 1; +END// +delimiter ;// +CALL sp1(); +CALL sp2(); +CALL sp3(); +SET sql_mode = DEFAULT; + +DROP PROCEDURE IF EXISTS sp1; +SET sql_mode = ''; +delimiter //; +CREATE PROCEDURE sp1() +BEGIN +declare x numeric unsigned zerofill; +SELECT f1 into x from t2 limit 1; +END// +delimiter ;// +CALL sp1(); +SET sql_mode = DEFAULT; +DROP TABLE t1; +DROP TABLE t2; +DROP TABLE t3; +DROP PROCEDURE sp1; +DROP PROCEDURE sp2; +DROP PROCEDURE sp3; + +# +# Bug#30059: End-space truncation warnings are inconsistent or incorrect +# + +create table t1 (c_char char(255), c_varchar varchar(255), c_tinytext tinytext); +create table t2 (c_tinyblob tinyblob); # not affected by bug, for regression testing +set @c = repeat(' ', 256); +set @q = repeat('q', 256); + +set sql_mode = ''; + +insert into t1 values(@c, @c, @c); +insert into t2 values(@c); +insert into t1 values(@q, @q, @q); +insert into t2 values(@q); + +set sql_mode = 'traditional'; + +insert into t1 values(@c, @c, @c); +--error 1406 +insert into t2 values(@c); +--error 1406 +insert into t1 values(@q, NULL, NULL); +--error 1406 +insert into t1 values(NULL, @q, NULL); +--error 1406 +insert into t1 values(NULL, NULL, @q); +--error 1406 +insert into t2 values(@q); + +drop table t1, t2; + +# +# Bug#42364 SHOW ERRORS returns empty resultset after dropping non existent table +# +--error ER_BAD_TABLE_ERROR +DROP TABLE t1; +SHOW ERRORS; + +--echo End of 5.0 tests + +# +# Test warning with row numbers +# + +set sql_mode = default; +select CAST(a AS DECIMAL(13,5)) FROM (SELECT '' as a) t; +create table t1 (a integer unsigned); +insert into t1 values (1),(-1),(0),(-2); +drop table t1; + +--echo End of 5.1 tests + +# +# Bug#55847: SHOW WARNINGS returns empty result set when SQLEXCEPTION is active +# + +--echo +--echo -- Bug#55847 +--echo + +--disable_warnings +DROP TABLE IF EXISTS t1; +DROP FUNCTION IF EXISTS f1; +--enable_warnings + +CREATE TABLE t1(a INT UNIQUE); + +delimiter |; + +CREATE FUNCTION f1(x INT) RETURNS INT +BEGIN + INSERT INTO t1 VALUES(x); + INSERT INTO t1 VALUES(x); + RETURN x; +END| + +delimiter ;| + +--echo + +--error ER_DUP_ENTRY +SHOW TABLES WHERE f1(11) = 11; + +--echo + +SHOW WARNINGS; + +--echo + +DROP TABLE t1; +DROP FUNCTION f1; + +# MDEV-14581 Warning info not cleared when caching THD +connect (con1,localhost,root,,); +SELECT TIME('10:10:10.11111111111'); +disconnect con1; + +connect (con2,localhost,root,,); +SHOW WARNINGS; +disconnect con2; + +connection default; + |