summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2016-03-17 22:03:09 +0100
committerSergei Golubchik <serg@mariadb.org>2016-03-19 19:40:33 +0100
commit23903255d82b77c77b734fa328ee01ca1a1ae8db (patch)
tree13e0568b7e13a213cf36341db183b90fe7fac93c
parentb24a04c6e04ba3e1488426d7fd333ee564858be5 (diff)
downloadmariadb-git-23903255d82b77c77b734fa328ee01ca1a1ae8db.tar.gz
MDEV-9629 Disappearing PRI from Key column after creating a trigger
when creating shadow nullable fields, preserve all original field flags (because we swap flags back and forth in not_null_fields_have_null_values())
-rw-r--r--mysql-test/r/trigger_null-8605.result14
-rw-r--r--mysql-test/t/trigger_null-8605.test12
-rw-r--r--sql/sql_trigger.cc1
3 files changed, 27 insertions, 0 deletions
diff --git a/mysql-test/r/trigger_null-8605.result b/mysql-test/r/trigger_null-8605.result
index 85fc51987d7..e024bc6b7d2 100644
--- a/mysql-test/r/trigger_null-8605.result
+++ b/mysql-test/r/trigger_null-8605.result
@@ -341,3 +341,17 @@ create trigger tr1 before update on t1 for each row do 1;
create trigger tr2 after update on t2 for each row update t1 set a=new.f2;
update t2 set f2=1 where f1=1;
drop table t1, t2;
+create table t1 (a int not null, primary key (a));
+insert into t1 (a) values (1);
+show columns from t1;
+Field Type Null Key Default Extra
+a int(11) NO PRI NULL
+create trigger t1bu before update on t1 for each row begin end;
+show columns from t1;
+Field Type Null Key Default Extra
+a int(11) NO PRI NULL
+insert into t1 (a) values (3);
+show columns from t1;
+Field Type Null Key Default Extra
+a int(11) NO PRI NULL
+drop table t1;
diff --git a/mysql-test/t/trigger_null-8605.test b/mysql-test/t/trigger_null-8605.test
index c9b0257afc8..4b51ccd5606 100644
--- a/mysql-test/t/trigger_null-8605.test
+++ b/mysql-test/t/trigger_null-8605.test
@@ -360,3 +360,15 @@ create trigger tr1 before update on t1 for each row do 1;
create trigger tr2 after update on t2 for each row update t1 set a=new.f2;
update t2 set f2=1 where f1=1;
drop table t1, t2;
+
+#
+# MDEV-9629 Disappearing PRI from Key column after creating a trigger
+#
+create table t1 (a int not null, primary key (a));
+insert into t1 (a) values (1);
+show columns from t1;
+create trigger t1bu before update on t1 for each row begin end;
+show columns from t1;
+insert into t1 (a) values (3);
+show columns from t1;
+drop table t1;
diff --git a/sql/sql_trigger.cc b/sql/sql_trigger.cc
index 272e1445273..18563ff9b85 100644
--- a/sql/sql_trigger.cc
+++ b/sql/sql_trigger.cc
@@ -1101,6 +1101,7 @@ bool Table_triggers_list::prepare_record_accessors(TABLE *table)
table == (*fld)->table)))
return 1;
+ f->flags= (*fld)->flags;
f->null_ptr= null_ptr;
f->null_bit= null_bit;
if (null_bit == 128)