236 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			236 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | # | |||
|  | # 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 into t1 values ("hej"); | |||
|  | insert into t1 values ("hej"),("d<>"); | |||
|  | set SQL_WARNINGS=1; | |||
|  | insert into t1 values ("hej"); | |||
|  | insert 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 into t1 values(NULL,100,'mysql'),(10,-1,'mysql ab'),(500,256,'open source'),(20,NULL,'test'); | |||
|  | alter table t1 modify c char(4); | |||
|  | alter table t1 add d char(2); | |||
|  | update t1 set a=NULL where a=10; | |||
|  | update t1 set c='mysql ab' where c='test'; | |||
|  | update t1 set d=c; | |||
|  | create table t2(a tinyint NOT NULL, b char(3)); | |||
|  | insert into t2 select b,c from t1; | |||
|  | insert into t2(b) values('mysqlab'); | |||
|  | set sql_warnings=1; | |||
|  | insert 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; | |||
|  | while ($1) | |||
|  | { | |||
|  |   eval insert into t1 values('mysql ab'); | |||
|  |   dec $1; | |||
|  | } | |||
|  | enable_query_log; | |||
|  | alter table t1 add b char; | |||
|  | set max_error_count=10; | |||
|  | update 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 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; | |||
|  | 
 | |||
|  | # | |||
|  | # Test for deprecated table_type variable | |||
|  | # | |||
|  | set table_type=MYISAM; | |||
|  | 
 | |||
|  | # | |||
|  | # 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 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; | |||
|  | 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(); | |||
|  | 
 | |||
|  | DROP PROCEDURE IF EXISTS sp1; | |||
|  | delimiter //; | |||
|  | CREATE PROCEDURE sp1() | |||
|  | BEGIN | |||
|  | declare x numeric unsigned zerofill; | |||
|  | SELECT f1 into x from t2 limit 1; | |||
|  | END// | |||
|  | delimiter ;// | |||
|  | CALL sp1(); | |||
|  | 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 |