Commit a1bd0bd1 authored by unknown's avatar unknown
Browse files

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.


mysql-test/r/auto_increment.result:
  Fixed confusing warning.
mysql-test/r/create.result:
  Fixed confusing warning.
mysql-test/r/insert.result:
  Fixed confusing warning.
mysql-test/r/insert_select.result:
  Fixed confusing warning.
mysql-test/r/key.result:
  Fixed confusing warning.
mysql-test/r/null.result:
  Fixed confusing warning.
mysql-test/r/null_key.result:
  Fixed confusing warning.
mysql-test/r/ps_2myisam.result:
  Fixed confusing warning.
mysql-test/r/ps_3innodb.result:
  Fixed confusing warning.
mysql-test/r/ps_4heap.result:
  Fixed confusing warning.
mysql-test/r/ps_5merge.result:
  Fixed confusing warning.
mysql-test/r/ps_6bdb.result:
  Fixed confusing warning.
mysql-test/r/strict.result:
  Fixed confusing warning.
mysql-test/r/view.result:
  Fixed confusing warning.
mysql-test/r/warnings.result:
  Fixed confusing warning.
sql/share/errmsg.txt:
  Fixed confusing warning.
parent 9accdbe5
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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
+1 −1
Original line number Diff line number Diff line
@@ -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

+1 −1
Original line number Diff line number Diff line
@@ -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
+2 −2
Original line number Diff line number Diff line
@@ -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
+2 −2
Original line number Diff line number Diff line
@@ -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
Loading