Commit d32e0486 authored by unknown's avatar unknown

postreview fixes


sql/item_func.cc:
  some optimisation
sql/sql_acl.cc:
  some optimisation
sql/sql_base.cc:
  some optimisation
sql/sql_parse.cc:
  some optimisation
sql/table.cc:
  some optimisation
parent 11632315
...@@ -4756,13 +4756,12 @@ Item_func_sp::execute(Item **itp) ...@@ -4756,13 +4756,12 @@ Item_func_sp::execute(Item **itp)
THD *thd= current_thd; THD *thd= current_thd;
int res= -1; int res= -1;
Sub_statement_state statement_state; Sub_statement_state statement_state;
Security_context *save_security_ctx= 0, *save_ctx_func; Security_context *save_security_ctx= thd->security_ctx, *save_ctx_func;
#ifndef NO_EMBEDDED_ACCESS_CHECKS #ifndef NO_EMBEDDED_ACCESS_CHECKS
if (context->security_ctx) if (context->security_ctx)
{ {
/* Set view definer security context */ /* Set view definer security context */
save_security_ctx= thd->security_ctx;
thd->security_ctx= context->security_ctx; thd->security_ctx= context->security_ctx;
} }
#endif #endif
...@@ -4787,7 +4786,6 @@ Item_func_sp::execute(Item **itp) ...@@ -4787,7 +4786,6 @@ Item_func_sp::execute(Item **itp)
#ifndef NO_EMBEDDED_ACCESS_CHECKS #ifndef NO_EMBEDDED_ACCESS_CHECKS
sp_restore_security_context(thd, save_ctx_func); sp_restore_security_context(thd, save_ctx_func);
error: error:
if (save_security_ctx)
thd->security_ctx= save_security_ctx; thd->security_ctx= save_security_ctx;
#else #else
error: error:
......
...@@ -3532,7 +3532,7 @@ bool check_grant(THD *thd, ulong want_access, TABLE_LIST *tables, ...@@ -3532,7 +3532,7 @@ bool check_grant(THD *thd, ulong want_access, TABLE_LIST *tables,
of other queries). For simple queries first_not_own_table is 0. of other queries). For simple queries first_not_own_table is 0.
*/ */
for (i= 0, table= tables; for (i= 0, table= tables;
table && table != first_not_own_table && i < number; table != first_not_own_table && i < number;
table= table->next_global, i++) table= table->next_global, i++)
{ {
/* Remove SHOW_VIEW_ACL, because it will be checked during making view */ /* Remove SHOW_VIEW_ACL, because it will be checked during making view */
......
...@@ -2705,15 +2705,13 @@ static bool check_grant_column_in_sctx(THD *thd, GRANT_INFO *grant, ...@@ -2705,15 +2705,13 @@ static bool check_grant_column_in_sctx(THD *thd, GRANT_INFO *grant,
{ {
if (!check_grants) if (!check_grants)
return FALSE; return FALSE;
Security_context *save_security_ctx= 0; Security_context *save_security_ctx= thd->security_ctx;
bool res; bool res;
if (sctx) if (sctx)
{ {
save_security_ctx= thd->security_ctx;
thd->security_ctx= sctx; thd->security_ctx= sctx;
} }
res= check_grant_column(thd, grant, db, table, name, length); res= check_grant_column(thd, grant, db, table, name, length);
if (save_security_ctx)
thd->security_ctx= save_security_ctx; thd->security_ctx= save_security_ctx;
return res; return res;
} }
......
...@@ -5033,7 +5033,7 @@ check_table_access(THD *thd, ulong want_access,TABLE_LIST *tables, ...@@ -5033,7 +5033,7 @@ check_table_access(THD *thd, ulong want_access,TABLE_LIST *tables,
the given table list refers to the list for prelocking (contains tables the given table list refers to the list for prelocking (contains tables
of other queries). For simple queries first_not_own_table is 0. of other queries). For simple queries first_not_own_table is 0.
*/ */
for (; tables && tables != first_not_own_table; tables= tables->next_global) for (; tables != first_not_own_table; tables= tables->next_global)
{ {
if (tables->schema_table && if (tables->schema_table &&
(want_access & ~(SELECT_ACL | EXTRA_ACL | FILE_ACL))) (want_access & ~(SELECT_ACL | EXTRA_ACL | FILE_ACL)))
......
...@@ -2654,7 +2654,7 @@ Natural_join_column::check_grants(THD *thd, const char *name, uint length) ...@@ -2654,7 +2654,7 @@ Natural_join_column::check_grants(THD *thd, const char *name, uint length)
GRANT_INFO *grant; GRANT_INFO *grant;
const char *db_name; const char *db_name;
const char *table_name; const char *table_name;
Security_context *save_security_ctx= 0; Security_context *save_security_ctx= thd->security_ctx;
Security_context *new_sctx= table_ref->security_ctx; Security_context *new_sctx= table_ref->security_ctx;
bool res; bool res;
...@@ -2675,11 +2675,9 @@ Natural_join_column::check_grants(THD *thd, const char *name, uint length) ...@@ -2675,11 +2675,9 @@ Natural_join_column::check_grants(THD *thd, const char *name, uint length)
if (new_sctx) if (new_sctx)
{ {
save_security_ctx= thd->security_ctx;
thd->security_ctx= new_sctx; thd->security_ctx= new_sctx;
} }
res= check_grant_column(thd, grant, db_name, table_name, name, length); res= check_grant_column(thd, grant, db_name, table_name, name, length);
if (save_security_ctx)
thd->security_ctx= save_security_ctx; thd->security_ctx= save_security_ctx;
return res; return res;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment