summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorunknown <vva@eagle.mysql.r18.ru>2003-07-28 10:58:50 -0400
committerunknown <vva@eagle.mysql.r18.ru>2003-07-28 10:58:50 -0400
commitdfc8a177242236445d51cd6b7ce4b5599231cc9e (patch)
tree7542c4a7a9ab10db1b8981e34d1e205d355a4891 /sql
parent673a1d8044203bd7de779b08811d471fac5f05f8 (diff)
parenta56959a5b6b5e04e86b03e33fd4eb664322f9342 (diff)
downloadmariadb-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.cc2
-rw-r--r--sql/handler.cc9
-rw-r--r--sql/sql_base.cc8
-rw-r--r--sql/sql_insert.cc1
-rw-r--r--sql/table.h2
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;