Loading sql/sql_view.cc +13 −3 Original line number Diff line number Diff line Loading @@ -179,15 +179,23 @@ static bool fill_defined_view_parts (THD *thd, TABLE_LIST *view) { LEX *lex= thd->lex; bool not_used; bool free_view= 1; TABLE_LIST decoy; if (view->view) free_view= 0; memcpy (&decoy, view, sizeof (TABLE_LIST)); if (!open_table(thd, &decoy, thd->mem_root, ¬_used, 0) && !decoy.view) if ((decoy.table= open_table(thd, &decoy, thd->mem_root, NULL, 0))) { /* It's a table */ my_free((gptr)decoy.table, MYF(0)); my_error(ER_WRONG_OBJECT, MYF(0), view->db, view->table_name, "VIEW"); return TRUE; } if (!decoy.view) /* An error while opening the view occurs, caller will handle it */ return FALSE; if (!lex->definer) { view->definer.host= decoy.definer.host; Loading @@ -199,6 +207,8 @@ fill_defined_view_parts (THD *thd, TABLE_LIST *view) if (lex->create_view_suid == VIEW_SUID_DEFAULT) lex->create_view_suid= decoy.view_suid ? VIEW_SUID_DEFINER : VIEW_SUID_INVOKER; if (free_view) delete decoy.view; return FALSE; } Loading Loading
sql/sql_view.cc +13 −3 Original line number Diff line number Diff line Loading @@ -179,15 +179,23 @@ static bool fill_defined_view_parts (THD *thd, TABLE_LIST *view) { LEX *lex= thd->lex; bool not_used; bool free_view= 1; TABLE_LIST decoy; if (view->view) free_view= 0; memcpy (&decoy, view, sizeof (TABLE_LIST)); if (!open_table(thd, &decoy, thd->mem_root, ¬_used, 0) && !decoy.view) if ((decoy.table= open_table(thd, &decoy, thd->mem_root, NULL, 0))) { /* It's a table */ my_free((gptr)decoy.table, MYF(0)); my_error(ER_WRONG_OBJECT, MYF(0), view->db, view->table_name, "VIEW"); return TRUE; } if (!decoy.view) /* An error while opening the view occurs, caller will handle it */ return FALSE; if (!lex->definer) { view->definer.host= decoy.definer.host; Loading @@ -199,6 +207,8 @@ fill_defined_view_parts (THD *thd, TABLE_LIST *view) if (lex->create_view_suid == VIEW_SUID_DEFAULT) lex->create_view_suid= decoy.view_suid ? VIEW_SUID_DEFINER : VIEW_SUID_INVOKER; if (free_view) delete decoy.view; return FALSE; } Loading