diff options
author | Sergei Golubchik <serg@mariadb.org> | 2016-06-28 10:10:49 +0200 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2016-06-28 12:54:01 +0200 |
commit | 6ce20fb2b9fe57330c797694b9dbea4028f40d7c (patch) | |
tree | 204929c9a26b0e4f9cbda12309a20e167ae60e5a | |
parent | 9c38308d8fa62da5c4be3ed7ad6d6c43fe8e7363 (diff) | |
download | mariadb-git-6ce20fb2b9fe57330c797694b9dbea4028f40d7c.tar.gz |
MDEV-9428 NO_AUTO_VALUE_ON_ZERO is ignored when a trigger before insert is defined
fix the *other* fill_record() too, arrgh!
-rw-r--r-- | mysql-test/r/trigger_null-8605.result | 5 | ||||
-rw-r--r-- | mysql-test/t/trigger_null-8605.test | 3 | ||||
-rw-r--r-- | sql/sql_base.cc | 3 |
3 files changed, 6 insertions, 5 deletions
diff --git a/mysql-test/r/trigger_null-8605.result b/mysql-test/r/trigger_null-8605.result index e024bc6b7d2..b187fc19554 100644 --- a/mysql-test/r/trigger_null-8605.result +++ b/mysql-test/r/trigger_null-8605.result @@ -318,9 +318,8 @@ id delete from t1; create trigger t1_bi before insert on t1 for each row begin end; insert t1 values (0); -select * from t1; -id -0 +insert t1 (id) values (0); +ERROR 23000: Duplicate entry '0' for key 'PRIMARY' drop table t1; create table t1 (a int not null, b int); create trigger trgi before update on t1 for each row do 1; diff --git a/mysql-test/t/trigger_null-8605.test b/mysql-test/t/trigger_null-8605.test index 4b51ccd5606..748768a1849 100644 --- a/mysql-test/t/trigger_null-8605.test +++ b/mysql-test/t/trigger_null-8605.test @@ -336,7 +336,8 @@ select * from t1; delete from t1; create trigger t1_bi before insert on t1 for each row begin end; insert t1 values (0); -select * from t1; +--error ER_DUP_ENTRY +insert t1 (id) values (0); drop table t1; # diff --git a/sql/sql_base.cc b/sql/sql_base.cc index e808fbafb50..8c1c32e28f6 100644 --- a/sql/sql_base.cc +++ b/sql/sql_base.cc @@ -8728,7 +8728,8 @@ fill_record(THD *thd, TABLE *table_arg, List<Item> &fields, List<Item> &values, value=v++; Field *rfield= field->field; TABLE* table= rfield->table; - if (rfield == table->next_number_field) + if (table->next_number_field && + rfield->field_index == table->next_number_field->field_index) table->auto_increment_field_not_null= TRUE; if (rfield->vcol_info && value->type() != Item::DEFAULT_VALUE_ITEM && |