diff options
author | unknown <vva@eagle.mysql.r18.ru> | 2003-07-28 10:58:50 -0400 |
---|---|---|
committer | unknown <vva@eagle.mysql.r18.ru> | 2003-07-28 10:58:50 -0400 |
commit | dfc8a177242236445d51cd6b7ce4b5599231cc9e (patch) | |
tree | 7542c4a7a9ab10db1b8981e34d1e205d355a4891 /sql | |
parent | 673a1d8044203bd7de779b08811d471fac5f05f8 (diff) | |
parent | a56959a5b6b5e04e86b03e33fd4eb664322f9342 (diff) | |
download | mariadb-git-dfc8a177242236445d51cd6b7ce4b5599231cc9e.tar.gz |
Merge eagle.mysql.r18.ru:/home/vva/work/mysql.orig/clear/mysql-4.1
into eagle.mysql.r18.ru:/home/vva/work/BUG_663/mysql-4.1
sql/sql_base.cc:
Auto merged
Diffstat (limited to 'sql')
-rw-r--r-- | sql/field_conv.cc | 2 | ||||
-rw-r--r-- | sql/handler.cc | 9 | ||||
-rw-r--r-- | sql/sql_base.cc | 8 | ||||
-rw-r--r-- | sql/sql_insert.cc | 1 | ||||
-rw-r--r-- | sql/table.h | 2 |
5 files changed, 11 insertions, 11 deletions
diff --git a/sql/field_conv.cc b/sql/field_conv.cc index 40e423a5aca..44e30afb880 100644 --- a/sql/field_conv.cc +++ b/sql/field_conv.cc @@ -173,7 +173,7 @@ set_field_to_null_with_conversions(Field *field, bool no_conversions) field->reset(); if (field == field->table->next_number_field) { - field->table->auto_increment_field_is_null= true; + field->table->auto_increment_field_not_null= false; return 0; // field is set in handler.cc } if (current_thd->count_cuted_fields) diff --git a/sql/handler.cc b/sql/handler.cc index 7f4b63e7551..90fd754a4c5 100644 --- a/sql/handler.cc +++ b/sql/handler.cc @@ -697,14 +697,15 @@ void handler::update_auto_increment() longlong nr; THD *thd; DBUG_ENTER("update_auto_increment"); - if (table->auto_increment_field_is_null) - table->auto_increment_field_is_null= false; - else if (table->next_number_field->val_int() != 0 || - current_thd->variables.sql_mode & MODE_NO_AUTO_VALUE_ON_ZERO) + if (table->next_number_field->val_int() != 0 || + table->auto_increment_field_not_null && + current_thd->variables.sql_mode & MODE_NO_AUTO_VALUE_ON_ZERO) { + table->auto_increment_field_not_null= false; auto_increment_column_changed=0; DBUG_VOID_RETURN; } + table->auto_increment_field_not_null= false; thd=current_thd; if ((nr=thd->next_insert_id)) thd->next_insert_id=0; // Clear after use diff --git a/sql/sql_base.cc b/sql/sql_base.cc index 32b60a801ad..dd69fbbd2f2 100644 --- a/sql/sql_base.cc +++ b/sql/sql_base.cc @@ -2247,8 +2247,8 @@ fill_record(List<Item> &fields,List<Item> &values, bool ignore_errors) value=v++; Field *rfield= field->field; TABLE *table= rfield->table; - if (rfield==table->next_number_field) - table->auto_increment_field_is_null= false; + if (rfield == table->next_number_field) + table->auto_increment_field_not_null= true; if (value->save_in_field(rfield, 0) > 0 && !ignore_errors) DBUG_RETURN(1); } @@ -2268,8 +2268,8 @@ fill_record(Field **ptr,List<Item> &values, bool ignore_errors) { value=v++; TABLE *table= field->table; - if (field==table->next_number_field) - table->auto_increment_field_is_null= false; + if (field == table->next_number_field) + table->auto_increment_field_not_null= true; if (value->save_in_field(field, 0) == 1 && !ignore_errors) DBUG_RETURN(1); } diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc index bddaffd3f4f..947205949f1 100644 --- a/sql/sql_insert.cc +++ b/sql/sql_insert.cc @@ -253,7 +253,6 @@ int mysql_insert(THD *thd,TABLE_LIST *table_list, else bulk_insert=0; - table->auto_increment_field_is_null= true; while ((values= its++)) { if (fields.elements || !value_count) diff --git a/sql/table.h b/sql/table.h index 8137f47aa1f..1831c834de6 100644 --- a/sql/table.h +++ b/sql/table.h @@ -116,7 +116,7 @@ struct st_table { my_bool crashed; my_bool is_view; my_bool no_keyread; - my_bool auto_increment_field_is_null; + my_bool auto_increment_field_not_null; Field *next_number_field, /* Set if next_number is activated */ *found_next_number_field, /* Set on open */ *rowid_field; |