Commit 1f8dbdaf authored by unknown's avatar unknown
Browse files

Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt

into  moonbone.local:/mnt/gentoo64/work/27586-bug-5.0-opt-mysql


sql/sql_load.cc:
  Auto merged
parents a978d84c b5cf43c9
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -156,3 +156,12 @@ 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;
+16 −0
Original line number Diff line number Diff line
@@ -136,4 +136,20 @@ 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
+8 −7
Original line number Diff line number Diff line
@@ -532,7 +532,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;
@@ -624,7 +624,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;
   
@@ -669,7 +671,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();
@@ -716,8 +718,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() == FIELD_TYPE_TIMESTAMP)
@@ -803,8 +803,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);
    /*
      If auto_increment values are used, save the first one for