mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 12:32:27 +01:00
a114ede24a
columns (default datatype value is assigned). The mysql_update function has been modified to generate an error when trying to set a NOT NULL field to NULL rather than a warning in the set_field_to_null_with_conversions function. mysql-test/extra/rpl_tests/rpl_extraMaster_Col.test: Updated test case (for bug#33699). mysql-test/include/ps_modify.inc: Updated test case (for bug#33699). mysql-test/r/auto_increment.result: Updated test case (for bug#33699). mysql-test/r/null.result: Updated test case (for bug#33699). mysql-test/r/ps_2myisam.result: Updated test case (for bug#33699). mysql-test/r/ps_3innodb.result: Updated test case (for bug#33699). mysql-test/r/ps_4heap.result: Updated test case (for bug#33699). mysql-test/r/ps_5merge.result: Updated test case (for bug#33699). mysql-test/r/warnings.result: Updated test case (for bug#33699). mysql-test/suite/ndb/r/ps_7ndb.result: Updated test case (for bug#33699). mysql-test/suite/rpl/r/rpl_extraColmaster_innodb.result: Updated test case (for bug#33699). mysql-test/suite/rpl/r/rpl_extraColmaster_myisam.result: Updated test case (for bug#33699). mysql-test/suite/rpl/t/rpl_err_ignoredtable.test: Updated test case (for bug#33699). mysql-test/t/auto_increment.test: Updated test case (for bug#33699). mysql-test/t/null.test: Updated test case (for bug#33699). mysql-test/t/warnings.test: Updated test case (for bug#33699). sql/sql_update.cc: Bug#33699: The mysql_update function has been modified to generate an error when trying to set a NOT NULL field to NULL rather than a warning in the set_field_to_null_with_conversions function. tests/mysql_client_test.c: Updated test case (for bug#33699).
196 lines
4.2 KiB
Text
196 lines
4.2 KiB
Text
#
|
|
# 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_ln/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);
|
|
--error 1048
|
|
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;
|
|
|
|
--echo End of 5.0 tests
|