summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <kroki@mysql.com>2006-06-28 23:50:50 +0400
committerunknown <kroki@mysql.com>2006-06-28 23:50:50 +0400
commit837c9719c436faa083872fda118891c94bbc3403 (patch)
tree0ad56171641573599cd3fff92940862851c4868f
parent0f0e518e74d91804504af52cf280c566823f6699 (diff)
downloadmariadb-git-837c9719c436faa083872fda118891c94bbc3403.tar.gz
Bug#10946: Confusing error messeges in the case of duplicate trigger definition
It was hard to distinguish case, when one was unable to create trigger on the table because trigger with same action time and event already existed for this table, from the case, when one tried to create trigger with name which was already occupied by some other trigger, since in both these cases we emitted ER_TRG_ALREADY_EXISTS error and message. Now we emit ER_NOT_SUPPORTED_YET error with appropriate additional message in the first case. There is no sense in introducing separate error for this situation since we plan to get rid of this limitation eventually. mysql-test/r/trigger.result: Update result for new error message. mysql-test/t/trigger.test: Update test for new error code. sql/sql_trigger.cc: If there is already a trigger with the same activation time, report an "Unsupported yet" error.
-rw-r--r--mysql-test/r/trigger.result2
-rw-r--r--mysql-test/t/trigger.test2
-rw-r--r--sql/sql_trigger.cc4
3 files changed, 5 insertions, 3 deletions
diff --git a/mysql-test/r/trigger.result b/mysql-test/r/trigger.result
index d4791c6b117..531ac5c0418 100644
--- a/mysql-test/r/trigger.result
+++ b/mysql-test/r/trigger.result
@@ -295,7 +295,7 @@ create trigger trg before insert on t1 for each row set @a:=1;
create trigger trg after insert on t1 for each row set @a:=1;
ERROR HY000: Trigger already exists
create trigger trg2 before insert on t1 for each row set @a:=1;
-ERROR HY000: Trigger already exists
+ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'
create trigger trg before insert on t3 for each row set @a:=1;
ERROR HY000: Trigger already exists
create trigger trg2 before insert on t3 for each row set @a:=1;
diff --git a/mysql-test/t/trigger.test b/mysql-test/t/trigger.test
index 3743d8f5c76..99df8ca600a 100644
--- a/mysql-test/t/trigger.test
+++ b/mysql-test/t/trigger.test
@@ -321,7 +321,7 @@ create trigger trg before insert on t2 for each row set @a:=1;
create trigger trg before insert on t1 for each row set @a:=1;
--error 1359
create trigger trg after insert on t1 for each row set @a:=1;
---error 1359
+--error 1235
create trigger trg2 before insert on t1 for each row set @a:=1;
--error 1359
create trigger trg before insert on t3 for each row set @a:=1;
diff --git a/sql/sql_trigger.cc b/sql/sql_trigger.cc
index f943b014118..013a269d3af 100644
--- a/sql/sql_trigger.cc
+++ b/sql/sql_trigger.cc
@@ -366,7 +366,9 @@ bool Table_triggers_list::create_trigger(THD *thd, TABLE_LIST *tables,
/* We don't allow creation of several triggers of the same type yet */
if (bodies[lex->trg_chistics.event][lex->trg_chistics.action_time])
{
- my_message(ER_TRG_ALREADY_EXISTS, ER(ER_TRG_ALREADY_EXISTS), MYF(0));
+ my_error(ER_NOT_SUPPORTED_YET, MYF(0),
+ "multiple triggers with the same action time"
+ " and event for one table");
return 1;
}