diff options
author | gluh@eagle.intranet.mysql.r18.ru <> | 2005-09-22 12:46:01 +0500 |
---|---|---|
committer | gluh@eagle.intranet.mysql.r18.ru <> | 2005-09-22 12:46:01 +0500 |
commit | 88ef33e542ea86feb8e9588bc8fe6270dfc20a52 (patch) | |
tree | fe4c385481240d843f94d098b61952dba4865bf5 /sql/sql_load.cc | |
parent | e84173a1ebb4caf33d271aa191d9ae397243f2a3 (diff) | |
download | mariadb-git-88ef33e542ea86feb8e9588bc8fe6270dfc20a52.tar.gz |
Fix for bug#12053 LOAD DATA INFILE ignores NO_AUTO_VALUE_ON_ZERO setting
set auto_increment_field_not_null to true to preserve zero values
for autoincrement fields during LOAD DATA execution if
NO_AUTO_VALUE_ON_ZERO sql mode is set
Diffstat (limited to 'sql/sql_load.cc')
-rw-r--r-- | sql/sql_load.cc | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sql/sql_load.cc b/sql/sql_load.cc index 7b963c7ea31..f590038f899 100644 --- a/sql/sql_load.cc +++ b/sql/sql_load.cc @@ -429,6 +429,8 @@ read_fixed_length(THD *thd,COPY_INFO &info,TABLE *table,List<Item> &fields, while ((sql_field= (Item_field*) it++)) { Field *field= sql_field->field; + if (field == table->next_number_field) + table->auto_increment_field_not_null= TRUE; if (pos == read_info.row_end) { thd->cuted_fields++; /* Not enough fields */ @@ -520,6 +522,8 @@ read_sep_field(THD *thd,COPY_INFO &info,TABLE *table, length=(uint) (read_info.row_end-pos); Field *field=sql_field->field; + if (field == table->next_number_field) + table->auto_increment_field_not_null= TRUE; if (!read_info.enclosed && (enclosed_length && length == 4 && !memcmp(pos,"NULL",4)) || (length == 1 && read_info.found_null)) |