From 3a17ab4551874940b451a73e4ab01aa48dd08df0 Mon Sep 17 00:00:00 2001 From: "serg@serg.mylan" <> Date: Fri, 30 Jul 2004 09:47:56 +0200 Subject: [PATCH] auto_value_on_zero bug test --- mysql-test/r/auto_increment.result | 18 ++++++++++++++++-- mysql-test/t/auto_increment.test | 2 ++ sql/sql_base.cc | 4 ++-- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/mysql-test/r/auto_increment.result b/mysql-test/r/auto_increment.result index 6bc59d4771f..79bcff06f68 100644 --- a/mysql-test/r/auto_increment.result +++ b/mysql-test/r/auto_increment.result @@ -201,12 +201,23 @@ a b 202 5 203 6 204 7 +alter table t1 modify b mediumint; +select * from t1 order by b; +a b +1 1 +200 2 +205 3 +201 4 +202 5 +203 6 +204 7 delete from t1 where a=0; update t1 set a=0 where b=5; select * from t1 order by b; a b 1 1 200 2 +205 3 201 4 0 5 203 6 @@ -214,7 +225,7 @@ a b delete from t1 where a=0; update t1 set a=NULL where b=6; Warnings: -Warning 1263 Data truncated; NULL supplied to NOT NULL column 'a' at row 4 +Warning 1263 Data truncated; NULL supplied to NOT NULL column 'a' at row 5 update t1 set a=300 where b=7; SET SQL_MODE=''; insert into t1(a,b)values(NULL,8); @@ -228,6 +239,7 @@ select * from t1 order by b; a b 1 1 200 2 +205 3 201 4 0 6 300 7 @@ -244,6 +256,7 @@ select * from t1 order by b; a b 1 1 200 2 +205 3 201 4 300 7 301 8 @@ -256,12 +269,13 @@ a b delete from t1 where a=0; update t1 set a=NULL where b=13; Warnings: -Warning 1263 Data truncated; NULL supplied to NOT NULL column 'a' at row 9 +Warning 1263 Data truncated; NULL supplied to NOT NULL column 'a' at row 10 update t1 set a=500 where b=14; select * from t1 order by b; a b 1 1 200 2 +205 3 201 4 300 7 301 8 diff --git a/mysql-test/t/auto_increment.test b/mysql-test/t/auto_increment.test index 73588a91aac..65770f32476 100644 --- a/mysql-test/t/auto_increment.test +++ b/mysql-test/t/auto_increment.test @@ -138,6 +138,8 @@ insert into t1(b)values(5); insert into t1(b)values(6); insert into t1(b)values(7); select * from t1 order by b; +alter table t1 modify b mediumint; +select * from t1 order by b; delete from t1 where a=0; update t1 set a=0 where b=5; select * from t1 order by b; diff --git a/sql/sql_base.cc b/sql/sql_base.cc index b6d14092885..1a923b2410a 100644 --- a/sql/sql_base.cc +++ b/sql/sql_base.cc @@ -2587,7 +2587,7 @@ fill_record(List &fields,List &values, bool ignore_errors) Field *rfield= field->field; TABLE *table= rfield->table; if (rfield == table->next_number_field) - table->auto_increment_field_not_null= true; + table->auto_increment_field_not_null= TRUE; if ((value->save_in_field(rfield, 0) < 0) && !ignore_errors) DBUG_RETURN(1); } @@ -2608,7 +2608,7 @@ fill_record(Field **ptr,List &values, bool ignore_errors) value=v++; TABLE *table= field->table; if (field == table->next_number_field) - table->auto_increment_field_not_null= true; + table->auto_increment_field_not_null= TRUE; if ((value->save_in_field(field, 0) < 0) && !ignore_errors) DBUG_RETURN(1); }