Commit 6c6f435b authored by svoj@may.pils.ru's avatar svoj@may.pils.ru

BUG#14770 - LOAD DATA INFILE doesn't respect default values for

            columns
Fixed confusing warning.

Quoting INSERT section of the manual:
----
Inserting NULL into a column that has been declared NOT NULL. For
multiple-row INSERT statements or INSERT INTO ... SELECT statements, the
column is set to the implicit default value for the column data type. This
is 0 for numeric types, the empty string ('') for string types, and the
"zero" value for date and time types. INSERT INTO ... SELECT statements are
handled the same way as multiple-row inserts because the server does not
examine the result set from the SELECT to see whether it returns a single
row. (For a single-row INSERT, no warning occurs when NULL is inserted into
a NOT NULL column. Instead, the statement fails with an error.)
----
This is also true for LOAD DATA INFILE. For INSERT user can specify
DEFAULT keyword as a value to set column default. There is no similiar
feature available for LOAD DATA INFILE.
parent 0dab0516
......@@ -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 1263 Column was set to data type implicit default; NULL supplied for NOT NULL column 'a' at row 4
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 1263 Column was set to data type implicit default; NULL supplied for NOT NULL column 'a' at row 9
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 1263 Column was set to data type implicit default; NULL supplied for NOT NULL column 'b' at row 2
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 1263 Column was set to data type implicit default; NULL supplied for NOT NULL column 'id' at row 2
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 1263 Column was set to data type implicit default; NULL supplied for NOT NULL column 'No' at row 1
Warning 1263 Column was set to data type implicit default; NULL supplied for NOT NULL column 'No' at row 2
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 1263 Column was set to data type implicit default; NULL supplied for NOT NULL column 'c' at row 1
Warning 1263 Column was set to data type implicit default; NULL supplied for NOT NULL column 'c' at row 2
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 1263 Column was set to data type implicit default; NULL supplied for NOT NULL column 'd' at row 1
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 1263 Column was set to data type implicit default; NULL supplied for NOT NULL column 'a' at row 1
Warning 1263 Column was set to data type implicit default; NULL supplied for NOT NULL column 'a' at row 2
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 1263 Column was set to data type implicit default; NULL supplied for NOT NULL column 'b' at row 1
Warning 1263 Column was set to data type implicit default; NULL supplied for NOT NULL column 'b' at row 2
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 1263 Column was set to data type implicit default; NULL supplied for NOT NULL column 'c' at row 1
Warning 1263 Column was set to data type implicit default; NULL supplied for NOT NULL column 'c' at row 2
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 1263 Column was set to data type implicit default; NULL supplied for NOT NULL column 'd' at row 1
Warning 1263 Column was set to data type implicit default; NULL supplied for NOT NULL column 'd' at row 2
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 1263 Column was set to data type implicit default; NULL supplied for NOT NULL column 'id2' at row 1
select * from t1;
id id2
NULL 0
......
......@@ -1304,7 +1304,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 1263 Column was set to data type implicit default; NULL supplied for NOT NULL column 'a' at row 1
select a,b from t1 order by a;
a b
0 two
......
......@@ -1287,7 +1287,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 1263 Column was set to data type implicit default; NULL supplied for NOT NULL column 'a' at row 1
select a,b from t1 order by a;
a b
0 two
......
......@@ -1288,7 +1288,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 1263 Column was set to data type implicit default; NULL supplied for NOT NULL column 'a' at row 1
select a,b from t1 order by a;
a b
0 two
......
......@@ -1330,7 +1330,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 1263 Column was set to data type implicit default; NULL supplied for NOT NULL column 'a' at row 1
select a,b from t1 order by a;
a b
0 two
......@@ -4344,7 +4344,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 1263 Column was set to data type implicit default; NULL supplied for NOT NULL column 'a' at row 1
select a,b from t1 order by a;
a b
0 two
......
......@@ -1287,7 +1287,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 1263 Column was set to data type implicit default; NULL supplied for NOT NULL column 'a' at row 1
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 22004: Column was set to data type implicit default; NULL supplied for NOT NULL column 'col1' at row 1
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 22004: Column was set to data type implicit default; NULL supplied for NOT NULL column 'col2' at row 1
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 22004: Column was set to data type implicit default; NULL supplied for NOT NULL column 'col2' at row 1
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 1263 Column was set to data type implicit default; NULL supplied for NOT NULL column 'col1' at row 1
Warning 1263 Column was set to data type implicit default; NULL supplied for NOT NULL column 'col2' at row 1
Warning 1263 Column was set to data type implicit default; NULL supplied for NOT NULL column 'col3' at row 1
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 22004: Column was set to data type implicit default; NULL supplied for NOT NULL column 'col2' at row 1
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 1263 Column was set to data type implicit default; NULL supplied for NOT NULL column 'col1' at row 1
Warning 1263 Column was set to data type implicit default; NULL supplied for NOT NULL column 'col2' at row 1
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 1263 Column was set to data type implicit default; NULL supplied for NOT NULL column 'a' at row 2
insert into v3(a) values (1) on duplicate key update a=a+10000+VALUES(a);
select * from t1;
a b
......
......@@ -72,7 +72,7 @@ drop table t1;
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 ',';
Warnings:
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'b' at row 2
Warning 1263 Column was set to data type implicit default; NULL supplied for NOT NULL column 'b' at row 2
Warning 1265 Data truncated for column 'd' at row 3
Warning 1265 Data truncated for column 'c' at row 4
Warning 1261 Row 5 doesn't contain data for all columns
......@@ -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 1263 Column was set to data type implicit default; NULL supplied for NOT NULL column 'a' at row 1
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 1263 Column was set to data type implicit default; NULL supplied for NOT NULL column 'a' at row 2
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 1263 Column was set to data type implicit default; NULL supplied for NOT NULL column 'a' at row 4
Warning 1265 Data truncated for column 'b' at row 4
insert into t2(b) values('mysqlab');
Warnings:
......
......@@ -4893,8 +4893,8 @@ ER_WARN_TOO_MANY_RECORDS 01000
por "Conta de registro maior que a conta de coluna na linha %ld"
spa "Lnea %ld fu truncada; La misma contine mas datos que las que existen en las columnas de entrada"
ER_WARN_NULL_TO_NOTNULL 22004
eng "Column set to default value; NULL supplied to NOT NULL column '%s' at row %ld"
ger "Feld auf Vorgabewert gesetzt, da NULL fr NOT-NULL-Feld '%s' in Zeile %ld angegeben"
eng "Column was set to data type implicit default; NULL supplied for NOT NULL column '%s' at row %ld"
ger "Feld auf Datentyp-spezifischen Vorgabewert gesetzt; da NULL fr NOT-NULL-Feld '%s' in Zeile %ld angegeben"
por "Dado truncado, NULL fornecido para NOT NULL coluna '%s' na linha %ld"
spa "Datos truncado, NULL suministrado para NOT NULL columna '%s' en la lnea %ld"
ER_WARN_DATA_OUT_OF_RANGE 22003
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment