Merge mysql.com:/d2/hf/mrg/mysql-5.0-opt
into mysql.com:/d2/hf/mrg/mysql-5.1-opt mysql-test/t/loaddata.test: Auto merged sql/sql_load.cc: Auto merged mysql-test/r/loaddata.result: SCCS merged
This commit is contained in:
commit
37feda2596
@ -165,6 +165,15 @@ select load_file("MYSQL_TEST_DIR/t/loaddata.test");
|
||||
load_file("MYSQL_TEST_DIR/t/loaddata.test")
|
||||
NULL
|
||||
drop table t1, t2;
|
||||
create table t1(f1 int);
|
||||
insert into t1 values(1),(null);
|
||||
create table t2(f2 int auto_increment primary key);
|
||||
select * from t2;
|
||||
f2
|
||||
1
|
||||
2
|
||||
SET @@SQL_MODE=@OLD_SQL_MODE;
|
||||
drop table t1,t2;
|
||||
CREATE TABLE t1 (a int);
|
||||
INSERT INTO t1 VALUES (1);
|
||||
SET NAMES latin1;
|
||||
|
@ -140,6 +140,22 @@ eval select load_file("$MYSQL_TEST_DIR/t/loaddata.test");
|
||||
# cleanup
|
||||
drop table t1, t2;
|
||||
|
||||
#
|
||||
# Bug#27586: Wrong autoinc value assigned by LOAD DATA in the
|
||||
# NO_AUTO_VALUE_ON_ZERO mode
|
||||
#
|
||||
create table t1(f1 int);
|
||||
insert into t1 values(1),(null);
|
||||
create table t2(f2 int auto_increment primary key);
|
||||
disable_query_log;
|
||||
eval select * into outfile '$MYSQLTEST_VARDIR/tmp/t1' from t1;
|
||||
SET @OLD_SQL_MODE=@@SQL_MODE, @@SQL_MODE=NO_AUTO_VALUE_ON_ZERO;
|
||||
eval load data infile '$MYSQLTEST_VARDIR/tmp/t1' into table t2;
|
||||
enable_query_log;
|
||||
select * from t2;
|
||||
--exec rm $MYSQLTEST_VARDIR/tmp/t1
|
||||
SET @@SQL_MODE=@OLD_SQL_MODE;
|
||||
drop table t1,t2;
|
||||
# End of 5.0 tests
|
||||
|
||||
|
||||
|
@ -552,7 +552,7 @@ read_fixed_length(THD *thd, COPY_INFO &info, TABLE_LIST *table_list,
|
||||
Item_field *sql_field;
|
||||
TABLE *table= table_list->table;
|
||||
ulonglong id;
|
||||
bool no_trans_update;
|
||||
bool no_trans_update, err;
|
||||
DBUG_ENTER("read_fixed_length");
|
||||
|
||||
id= 0;
|
||||
@ -644,7 +644,9 @@ read_fixed_length(THD *thd, COPY_INFO &info, TABLE_LIST *table_list,
|
||||
DBUG_RETURN(-1);
|
||||
}
|
||||
|
||||
if (write_record(thd, table, &info))
|
||||
err= write_record(thd, table, &info);
|
||||
table->auto_increment_field_not_null= FALSE;
|
||||
if (err)
|
||||
DBUG_RETURN(1);
|
||||
thd->no_trans_update= no_trans_update;
|
||||
|
||||
@ -681,7 +683,7 @@ read_sep_field(THD *thd, COPY_INFO &info, TABLE_LIST *table_list,
|
||||
TABLE *table= table_list->table;
|
||||
uint enclosed_length;
|
||||
ulonglong id;
|
||||
bool no_trans_update;
|
||||
bool no_trans_update, err;
|
||||
DBUG_ENTER("read_sep_field");
|
||||
|
||||
enclosed_length=enclosed.length();
|
||||
@ -728,8 +730,6 @@ read_sep_field(THD *thd, COPY_INFO &info, TABLE_LIST *table_list,
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
field->set_null();
|
||||
if (field == table->next_number_field)
|
||||
table->auto_increment_field_not_null= TRUE;
|
||||
if (!field->maybe_null())
|
||||
{
|
||||
if (field->type() == MYSQL_TYPE_TIMESTAMP)
|
||||
@ -815,8 +815,9 @@ read_sep_field(THD *thd, COPY_INFO &info, TABLE_LIST *table_list,
|
||||
DBUG_RETURN(-1);
|
||||
}
|
||||
|
||||
|
||||
if (write_record(thd, table, &info))
|
||||
err= write_record(thd, table, &info);
|
||||
table->auto_increment_field_not_null= FALSE;
|
||||
if (err)
|
||||
DBUG_RETURN(1);
|
||||
/*
|
||||
We don't need to reset auto-increment field since we are restoring
|
||||
|
Loading…
x
Reference in New Issue
Block a user