From 2aad30394d33eef23545d717f4b92eb280c2b19d Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 21 Oct 2004 14:32:10 +0300 Subject: inserting single value with check option failed always get error (part of BUG#5995) mysql-test/r/view.result: inserting single value with check option failed always get error mysql-test/t/view.test: inserting single value with check option failed always get error sql/sql_insert.cc: inserting single value with check option failed always get error --- sql/sql_insert.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'sql/sql_insert.cc') diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc index 36ac56799de..2fe0d2f644a 100644 --- a/sql/sql_insert.cc +++ b/sql/sql_insert.cc @@ -319,7 +319,10 @@ int mysql_insert(THD *thd,TABLE_LIST *table_list, break; } } - if ((res= table_list->view_check_option(thd, ignore_err)) == + if ((res= table_list->view_check_option(thd, + (values_list.elements == 1 ? + 0 : + ignore_err))) == VIEW_CHECK_SKIP) continue; else if (res == VIEW_CHECK_ERROR) -- cgit v1.2.1 From 0ea04229074645b2642456158ac120448dfa6334 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 21 Oct 2004 17:05:45 +0300 Subject: value should be checked after 'before' trigger work (BUG#5992) mysql-test/r/view.result: changing value by trigger and CHECK OPTION mysql-test/t/view.test: changing value by trigger and CHECK OPTION sql/sql_insert.cc: value should be checked after 'before' trigger work --- sql/sql_insert.cc | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'sql/sql_insert.cc') diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc index 2fe0d2f644a..d9002c2da29 100644 --- a/sql/sql_insert.cc +++ b/sql/sql_insert.cc @@ -319,6 +319,15 @@ int mysql_insert(THD *thd,TABLE_LIST *table_list, break; } } + + /* + FIXME: Actually we should do this before + check_that_all_fields_are_given_values Or even go into write_record ? + */ + if (table->triggers) + table->triggers->process_triggers(thd, TRG_EVENT_INSERT, + TRG_ACTION_BEFORE); + if ((res= table_list->view_check_option(thd, (values_list.elements == 1 ? 0 : @@ -330,15 +339,6 @@ int mysql_insert(THD *thd,TABLE_LIST *table_list, error= 1; break; } - - /* - FIXME: Actually we should do this before - check_that_all_fields_are_given_values Or even go into write_record ? - */ - if (table->triggers) - table->triggers->process_triggers(thd, TRG_EVENT_INSERT, - TRG_ACTION_BEFORE); - #ifndef EMBEDDED_LIBRARY if (lock_type == TL_WRITE_DELAYED) { -- cgit v1.2.1