mirror of
https://github.com/MariaDB/server.git
synced 2026-01-06 05:22:24 +03:00
fixed mechanism of detection selection from table wich we update
(BUG##9398, BUG#8703) fixed wrong join view detection in multi-delete which lead to server crash mysql-test/r/lowercase_view.result: added new tests of updation and selection from the same table mysql-test/r/view.result: added new tests of updation and selection from the same table added test of multidelete command over join view which lead to server crash test suite from bugs #9398 and #8703 mysql-test/t/lowercase_view.test: added new tests of updation and selection from the same table mysql-test/t/view.test: added new tests of updation and selection from the same table added test of multidelete command over join view which lead to server crash test suite from bugs #9398 and #8703 sql/sql_base.cc: changed procedure of finding tables sql/sql_class.cc: added derived table procession detection sql/sql_class.h: added derived table procession detection sql/sql_delete.cc: fixed detection of selection from table which update for multidelete sql/sql_derived.cc: added derived table procession detection sql/sql_lex.cc: added detection os SELECTs processed inside derived tables removed old mechanism of multidelete/multiupdate table duplication detection (which can't work with views) sql/sql_lex.h: added detection os SELECTs processed inside derived tables removed old mechanism of multidelete/multiupdate table duplication detection (which can't work with views) sql/sql_parse.cc: removed wrong test of join view (for multidelete in can be not only first table) sql/sql_prepare.cc: added detection os SELECTs processed inside derived tables (reset it for reusing in PS/SP) sql/sql_select.cc: added detection os SELECTs processed inside derived tables sql/sql_update.cc: fixed detection of selection from table which update for multiupdate
This commit is contained in:
@@ -442,7 +442,6 @@ public:
|
||||
inline void unclean() { cleaned= 0; }
|
||||
void reinit_exec_mechanism();
|
||||
|
||||
bool check_updateable(char *db, char *table);
|
||||
void print(String *str);
|
||||
|
||||
ulong init_prepare_fake_select_lex(THD *thd);
|
||||
@@ -525,6 +524,8 @@ public:
|
||||
bool first_cond_optimization;
|
||||
/* do not wrap view fields with Item_ref */
|
||||
bool no_wrap_view_item;
|
||||
/* exclude this select from check of unique_table() */
|
||||
bool exclude_from_table_unique_test;
|
||||
|
||||
/*
|
||||
SELECT for SELECT command st_select_lex. Used to privent scaning
|
||||
@@ -615,8 +616,6 @@ public:
|
||||
init_select();
|
||||
}
|
||||
bool setup_ref_array(THD *thd, uint order_group_num);
|
||||
bool check_updateable(char *db, char *table);
|
||||
bool check_updateable_in_subqueries(char *db, char *table);
|
||||
void print(THD *thd, String *str);
|
||||
static void print_order(String *str, ORDER *order);
|
||||
void print_limit(THD *thd, String *str);
|
||||
|
||||
Reference in New Issue
Block a user