summaryrefslogtreecommitdiff
path: root/sql/sql_load.cc
diff options
context:
space:
mode:
authorunknown <monty@mysql.com>2005-09-25 21:22:23 +0300
committerunknown <monty@mysql.com>2005-09-25 21:22:23 +0300
commit466b46a66af37310b7d050448ab08913cb09671e (patch)
tree8f55cf36de04a78555166306a41f58ce8628a240 /sql/sql_load.cc
parentb337566babce87b4a5854f18586206525a4ba1b7 (diff)
downloadmariadb-git-466b46a66af37310b7d050448ab08913cb09671e.tar.gz
Fixed error found during review of new pushed code
client/mysql.cc: Don't use c_ptr() for cgets() and ensure buffer is not overwritten mysql-test/r/cast.result: More test for CAST(0x.... as signed) sql/opt_sum.cc: Fix bugs found during review - Changed code to be able to remove one if - Ensure that count == 0 only if is_exact_count == TRUE sql/sql_delete.cc: Ensure 'allow_sum_func' is reset before call to setup_conds sql/sql_lex.cc: allow_sum_func doesn't have to be reset for each query (It's to be reset in setup_fields() or before call to setup_conds() sql/sql_load.cc: Move set of auto_increment_field_not_null so that it's not set if field value is NULL sql/sql_prepare.cc: allow_sum_func doesn't have to be reset for each query (It's to be reset in setup_fields() or before call to setup_conds() sql/sql_update.cc: Ensure 'allow_sum_func' is reset before call to setup_conds
Diffstat (limited to 'sql/sql_load.cc')
-rw-r--r--sql/sql_load.cc10
1 files changed, 5 insertions, 5 deletions
diff --git a/sql/sql_load.cc b/sql/sql_load.cc
index f590038f899..4d09da70ef7 100644
--- a/sql/sql_load.cc
+++ b/sql/sql_load.cc
@@ -429,8 +429,6 @@ 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 */
@@ -443,11 +441,13 @@ read_fixed_length(THD *thd,COPY_INFO &info,TABLE *table,List<Item> &fields,
{
uint length;
byte save_chr;
+ if (field == table->next_number_field)
+ table->auto_increment_field_not_null= TRUE;
if ((length=(uint) (read_info.row_end-pos)) >
field->field_length)
length=field->field_length;
save_chr=pos[length]; pos[length]='\0'; // Safeguard aganst malloc
- field->store((char*) pos,length,read_info.read_charset);
+ field->store((char*) pos,length,read_info.read_charset);
pos[length]=save_chr;
if ((pos+=length) > read_info.row_end)
pos= read_info.row_end; /* Fills rest with space */
@@ -522,8 +522,6 @@ 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))
@@ -540,6 +538,8 @@ read_sep_field(THD *thd,COPY_INFO &info,TABLE *table,
}
continue;
}
+ if (field == table->next_number_field)
+ table->auto_increment_field_not_null= TRUE;
field->set_notnull();
read_info.row_end[0]=0; // Safe to change end marker
field->store((char*) read_info.row_start,length,read_info.read_charset);