mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 12:32:27 +01:00
Fix for bug#11491 Misleading error message if not NULL column set to NULL,
SQL mode TRADITIONAL Message is chenged from 'ER_WARN_NULL_TO_NOTNULL' to 'ER_BAD_NULL_ERROR'
This commit is contained in:
parent
fb057f13fb
commit
21cc3ae561
18 changed files with 43 additions and 44 deletions
|
@ -232,7 +232,7 @@ a b
|
|||
delete from t1 where a=0;
|
||||
update t1 set a=NULL where b=6;
|
||||
Warnings:
|
||||
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'a' at row 4
|
||||
Warning 1048 Column 'a' cannot be null
|
||||
update t1 set a=300 where b=7;
|
||||
SET SQL_MODE='';
|
||||
insert into t1(a,b)values(NULL,8);
|
||||
|
@ -274,7 +274,7 @@ a b
|
|||
delete from t1 where a=0;
|
||||
update t1 set a=NULL where b=13;
|
||||
Warnings:
|
||||
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'a' at row 9
|
||||
Warning 1048 Column 'a' cannot be null
|
||||
update t1 set a=500 where b=14;
|
||||
select * from t1 order by b;
|
||||
a b
|
||||
|
|
|
@ -13,7 +13,7 @@ Warnings:
|
|||
Note 1050 Table 't1' already exists
|
||||
insert into t1 values (""),(null);
|
||||
Warnings:
|
||||
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'b' at row 2
|
||||
Warning 1048 Column 'b' cannot be null
|
||||
select * from t1;
|
||||
b
|
||||
|
||||
|
|
|
@ -63,7 +63,7 @@ insert into t1 values(NULL);
|
|||
ERROR 23000: Column 'id' cannot be null
|
||||
insert into t1 values (1), (NULL), (2);
|
||||
Warnings:
|
||||
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'id' at row 2
|
||||
Warning 1048 Column 'id' cannot be null
|
||||
select * from t1;
|
||||
id
|
||||
1
|
||||
|
|
|
@ -606,8 +606,8 @@ NULL 2 100
|
|||
create table t2(No int not null, Field int not null, Count int not null);
|
||||
insert into t2 Select null, Field, Count From t1 Where Month=20030901 and Type=2;
|
||||
Warnings:
|
||||
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'No' at row 1
|
||||
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'No' at row 2
|
||||
Warning 1048 Column 'No' cannot be null
|
||||
Warning 1048 Column 'No' cannot be null
|
||||
select * from t2;
|
||||
No Field Count
|
||||
0 1 100
|
||||
|
|
|
@ -159,8 +159,8 @@ CREATE TABLE t1 (c CHAR(10) NOT NULL,i INT NOT NULL AUTO_INCREMENT,
|
|||
UNIQUE (c,i));
|
||||
INSERT INTO t1 (c) VALUES (NULL),(NULL);
|
||||
Warnings:
|
||||
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'c' at row 1
|
||||
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'c' at row 2
|
||||
Warning 1048 Column 'c' cannot be null
|
||||
Warning 1048 Column 'c' cannot be null
|
||||
SELECT * FROM t1;
|
||||
c i
|
||||
1
|
||||
|
|
|
@ -97,39 +97,39 @@ Warnings:
|
|||
Warning 1265 Data truncated for column 'd' at row 1
|
||||
UPDATE t1 SET d=NULL;
|
||||
Warnings:
|
||||
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'd' at row 1
|
||||
Warning 1048 Column 'd' cannot be null
|
||||
INSERT INTO t1 (a) values (null);
|
||||
ERROR 23000: Column 'a' cannot be null
|
||||
INSERT INTO t1 (a) values (1/null);
|
||||
ERROR 23000: Column 'a' cannot be null
|
||||
INSERT INTO t1 (a) values (null),(null);
|
||||
Warnings:
|
||||
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'a' at row 1
|
||||
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'a' at row 2
|
||||
Warning 1048 Column 'a' cannot be null
|
||||
Warning 1048 Column 'a' cannot be null
|
||||
INSERT INTO t1 (b) values (null);
|
||||
ERROR 23000: Column 'b' cannot be null
|
||||
INSERT INTO t1 (b) values (1/null);
|
||||
ERROR 23000: Column 'b' cannot be null
|
||||
INSERT INTO t1 (b) values (null),(null);
|
||||
Warnings:
|
||||
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'b' at row 1
|
||||
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'b' at row 2
|
||||
Warning 1048 Column 'b' cannot be null
|
||||
Warning 1048 Column 'b' cannot be null
|
||||
INSERT INTO t1 (c) values (null);
|
||||
ERROR 23000: Column 'c' cannot be null
|
||||
INSERT INTO t1 (c) values (1/null);
|
||||
ERROR 23000: Column 'c' cannot be null
|
||||
INSERT INTO t1 (c) values (null),(null);
|
||||
Warnings:
|
||||
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'c' at row 1
|
||||
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'c' at row 2
|
||||
Warning 1048 Column 'c' cannot be null
|
||||
Warning 1048 Column 'c' cannot be null
|
||||
INSERT INTO t1 (d) values (null);
|
||||
ERROR 23000: Column 'd' cannot be null
|
||||
INSERT INTO t1 (d) values (1/null);
|
||||
ERROR 23000: Column 'd' cannot be null
|
||||
INSERT INTO t1 (d) values (null),(null);
|
||||
Warnings:
|
||||
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'd' at row 1
|
||||
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'd' at row 2
|
||||
Warning 1048 Column 'd' cannot be null
|
||||
Warning 1048 Column 'd' cannot be null
|
||||
select * from t1;
|
||||
a b c d
|
||||
0 0000-00-00 00:00:00 0
|
||||
|
|
|
@ -342,7 +342,7 @@ index (id2)
|
|||
);
|
||||
insert into t1 values(null,null),(1,1);
|
||||
Warnings:
|
||||
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'id2' at row 1
|
||||
Warning 1048 Column 'id2' cannot be null
|
||||
select * from t1;
|
||||
id id2
|
||||
NULL 0
|
||||
|
|
|
@ -1302,7 +1302,7 @@ set @arg00=NULL;
|
|||
set @arg01=2;
|
||||
execute stmt1 using @arg00, @arg01;
|
||||
Warnings:
|
||||
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'a' at row 1
|
||||
Warning 1048 Column 'a' cannot be null
|
||||
select a,b from t1 order by a;
|
||||
a b
|
||||
0 two
|
||||
|
|
|
@ -1285,7 +1285,7 @@ set @arg00=NULL;
|
|||
set @arg01=2;
|
||||
execute stmt1 using @arg00, @arg01;
|
||||
Warnings:
|
||||
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'a' at row 1
|
||||
Warning 1048 Column 'a' cannot be null
|
||||
select a,b from t1 order by a;
|
||||
a b
|
||||
0 two
|
||||
|
|
|
@ -1286,7 +1286,7 @@ set @arg00=NULL;
|
|||
set @arg01=2;
|
||||
execute stmt1 using @arg00, @arg01;
|
||||
Warnings:
|
||||
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'a' at row 1
|
||||
Warning 1048 Column 'a' cannot be null
|
||||
select a,b from t1 order by a;
|
||||
a b
|
||||
0 two
|
||||
|
|
|
@ -1328,7 +1328,7 @@ set @arg00=NULL;
|
|||
set @arg01=2;
|
||||
execute stmt1 using @arg00, @arg01;
|
||||
Warnings:
|
||||
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'a' at row 1
|
||||
Warning 1048 Column 'a' cannot be null
|
||||
select a,b from t1 order by a;
|
||||
a b
|
||||
0 two
|
||||
|
@ -4340,7 +4340,7 @@ set @arg00=NULL;
|
|||
set @arg01=2;
|
||||
execute stmt1 using @arg00, @arg01;
|
||||
Warnings:
|
||||
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'a' at row 1
|
||||
Warning 1048 Column 'a' cannot be null
|
||||
select a,b from t1 order by a;
|
||||
a b
|
||||
0 two
|
||||
|
|
|
@ -1285,7 +1285,7 @@ set @arg00=NULL;
|
|||
set @arg01=2;
|
||||
execute stmt1 using @arg00, @arg01;
|
||||
Warnings:
|
||||
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'a' at row 1
|
||||
Warning 1048 Column 'a' cannot be null
|
||||
select a,b from t1 order by a;
|
||||
a b
|
||||
0 two
|
||||
|
|
|
@ -1285,7 +1285,7 @@ set @arg00=NULL;
|
|||
set @arg01=2;
|
||||
execute stmt1 using @arg00, @arg01;
|
||||
Warnings:
|
||||
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'a' at row 1
|
||||
Warning 1048 Column 'a' cannot be null
|
||||
select a,b from t1 order by a;
|
||||
a b
|
||||
0 two
|
||||
|
|
|
@ -989,16 +989,16 @@ ERROR 23000: Column 'col2' cannot be null
|
|||
INSERT INTO t1 VALUES (103,'',NULL);
|
||||
ERROR 23000: Column 'col3' cannot be null
|
||||
UPDATE t1 SET col1=NULL WHERE col1 =100;
|
||||
ERROR 22004: Column set to default value; NULL supplied to NOT NULL column 'col1' at row 1
|
||||
ERROR 23000: Column 'col1' cannot be null
|
||||
UPDATE t1 SET col2 =NULL WHERE col2 ='hello';
|
||||
ERROR 22004: Column set to default value; NULL supplied to NOT NULL column 'col2' at row 1
|
||||
ERROR 23000: Column 'col2' cannot be null
|
||||
UPDATE t1 SET col2 =NULL where col3 IS NOT NULL;
|
||||
ERROR 22004: Column set to default value; NULL supplied to NOT NULL column 'col2' at row 1
|
||||
ERROR 23000: Column 'col2' cannot be null
|
||||
INSERT IGNORE INTO t1 values (NULL,NULL,NULL);
|
||||
Warnings:
|
||||
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'col1' at row 1
|
||||
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'col2' at row 1
|
||||
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'col3' at row 1
|
||||
Warning 1048 Column 'col1' cannot be null
|
||||
Warning 1048 Column 'col2' cannot be null
|
||||
Warning 1048 Column 'col3' cannot be null
|
||||
SELECT * FROM t1;
|
||||
col1 col2 col3
|
||||
100 hello 2004-08-20
|
||||
|
@ -1023,11 +1023,11 @@ ERROR HY000: Field 'col2' doesn't have a default value
|
|||
INSERT INTO t1 (col1) SELECT 1;
|
||||
ERROR HY000: Field 'col2' doesn't have a default value
|
||||
INSERT INTO t1 SELECT 1,NULL;
|
||||
ERROR 22004: Column set to default value; NULL supplied to NOT NULL column 'col2' at row 1
|
||||
ERROR 23000: Column 'col2' cannot be null
|
||||
INSERT IGNORE INTO t1 values (NULL,NULL);
|
||||
Warnings:
|
||||
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'col1' at row 1
|
||||
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'col2' at row 1
|
||||
Warning 1048 Column 'col1' cannot be null
|
||||
Warning 1048 Column 'col2' cannot be null
|
||||
INSERT IGNORE INTO t1 (col1) values (3);
|
||||
Warnings:
|
||||
Warning 1364 Field 'col2' doesn't have a default value
|
||||
|
|
|
@ -1495,7 +1495,7 @@ insert into v3(b) values (10);
|
|||
insert into v3(a) select a from t2;
|
||||
insert into v3(b) select b from t2;
|
||||
Warnings:
|
||||
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'a' at row 2
|
||||
Warning 1048 Column 'a' cannot be null
|
||||
insert into v3(a) values (1) on duplicate key update a=a+10000+VALUES(a);
|
||||
select * from t1;
|
||||
a b
|
||||
|
|
|
@ -86,7 +86,7 @@ drop table t1;
|
|||
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');
|
||||
Warnings:
|
||||
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'a' at row 1
|
||||
Warning 1048 Column 'a' cannot be null
|
||||
Warning 1264 Out of range value adjusted for column 'b' at row 2
|
||||
Warning 1265 Data truncated for column 'c' at row 2
|
||||
Warning 1264 Out of range value adjusted for column 'a' at row 3
|
||||
|
@ -99,7 +99,7 @@ Warning 1265 Data truncated for column 'c' at row 2
|
|||
alter table t1 add d char(2);
|
||||
update t1 set a=NULL where a=10;
|
||||
Warnings:
|
||||
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'a' at row 2
|
||||
Warning 1048 Column 'a' cannot be null
|
||||
update t1 set c='mysql ab' where c='test';
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'c' at row 4
|
||||
|
@ -115,7 +115,7 @@ Warnings:
|
|||
Warning 1265 Data truncated for column 'b' at row 1
|
||||
Warning 1265 Data truncated for column 'b' at row 2
|
||||
Warning 1265 Data truncated for column 'b' at row 3
|
||||
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'a' at row 4
|
||||
Warning 1048 Column 'a' cannot be null
|
||||
Warning 1265 Data truncated for column 'b' at row 4
|
||||
insert into t2(b) values('mysqlab');
|
||||
Warnings:
|
||||
|
|
|
@ -884,11 +884,11 @@ INSERT INTO t1 (col1,col2,col3) VALUES (NULL, '', '2004-01-01');
|
|||
INSERT INTO t1 (col1,col2,col3) VALUES (102, NULL, '2004-01-01');
|
||||
--error 1048
|
||||
INSERT INTO t1 VALUES (103,'',NULL);
|
||||
--error 1263
|
||||
--error 1048
|
||||
UPDATE t1 SET col1=NULL WHERE col1 =100;
|
||||
--error 1263
|
||||
--error 1048
|
||||
UPDATE t1 SET col2 =NULL WHERE col2 ='hello';
|
||||
--error 1263
|
||||
--error 1048
|
||||
UPDATE t1 SET col2 =NULL where col3 IS NOT NULL;
|
||||
INSERT IGNORE INTO t1 values (NULL,NULL,NULL);
|
||||
SELECT * FROM t1;
|
||||
|
@ -908,7 +908,7 @@ INSERT INTO t1 (col1) VALUES (2);
|
|||
INSERT INTO t1 VALUES(default(col1),default(col2));
|
||||
--error 1364
|
||||
INSERT INTO t1 (col1) SELECT 1;
|
||||
--error 1263
|
||||
--error 1048
|
||||
INSERT INTO t1 SELECT 1,NULL;
|
||||
INSERT IGNORE INTO t1 values (NULL,NULL);
|
||||
INSERT IGNORE INTO t1 (col1) values (3);
|
||||
|
|
|
@ -178,8 +178,7 @@ set_field_to_null_with_conversions(Field *field, bool no_conversions)
|
|||
}
|
||||
if (current_thd->count_cuted_fields == CHECK_FIELD_WARN)
|
||||
{
|
||||
field->set_warning(MYSQL_ERROR::WARN_LEVEL_WARN,
|
||||
ER_WARN_NULL_TO_NOTNULL, 1);
|
||||
field->set_warning(MYSQL_ERROR::WARN_LEVEL_WARN, ER_BAD_NULL_ERROR, 1);
|
||||
return 0;
|
||||
}
|
||||
if (!current_thd->no_errors)
|
||||
|
|
Loading…
Reference in a new issue