Loading sql/sql_acl.cc +5 −5 Original line number Diff line number Diff line Loading @@ -1514,7 +1514,7 @@ static bool update_user_table(THD *thd, const char *host, const char *user, */ tables.updating= 1; /* Thanks to bzero, tables.next==0 */ if (!rpl_filter->tables_ok(0, &tables)) if (!(thd->spcont || rpl_filter->tables_ok(0, &tables))) DBUG_RETURN(0); } #endif Loading Loading @@ -2699,7 +2699,7 @@ bool mysql_table_grant(THD *thd, TABLE_LIST *table_list, account in tests. */ tables[0].updating= tables[1].updating= tables[2].updating= 1; if (!rpl_filter->tables_ok(0, tables)) if (!(thd->spcont || rpl_filter->tables_ok(0, tables))) DBUG_RETURN(FALSE); } #endif Loading Loading @@ -2904,7 +2904,7 @@ bool mysql_procedure_grant(THD *thd, TABLE_LIST *table_list, account in tests. */ tables[0].updating= tables[1].updating= 1; if (!rpl_filter->tables_ok(0, tables)) if (!(thd->spcont || rpl_filter->tables_ok(0, tables))) DBUG_RETURN(FALSE); } #endif Loading Loading @@ -3035,7 +3035,7 @@ bool mysql_grant(THD *thd, const char *db, List <LEX_USER> &list, account in tests. */ tables[0].updating= tables[1].updating= 1; if (!rpl_filter->tables_ok(0, tables)) if (!(thd->spcont || rpl_filter->tables_ok(0, tables))) DBUG_RETURN(FALSE); } #endif Loading Loading @@ -4245,7 +4245,7 @@ int open_grant_tables(THD *thd, TABLE_LIST *tables) */ tables[0].updating=tables[1].updating=tables[2].updating= tables[3].updating=tables[4].updating=1; if (!rpl_filter->tables_ok(0, tables)) if (!(thd->spcont || rpl_filter->tables_ok(0, tables))) DBUG_RETURN(1); tables[0].updating=tables[1].updating=tables[2].updating= tables[3].updating=tables[4].updating=0;; Loading sql/sql_parse.cc +5 −4 Original line number Diff line number Diff line Loading @@ -168,11 +168,12 @@ static bool begin_trans(THD *thd) inline bool all_tables_not_ok(THD *thd, TABLE_LIST *tables) { return (rpl_filter->is_on() && tables && !rpl_filter->tables_ok(thd->db, tables) && !(thd->spcont || rpl_filter->tables_ok(thd->db, tables)) && ((thd->lex->sql_command != SQLCOM_DELETE_MULTI) || !rpl_filter->tables_ok(thd->db, !(thd->spcont || rpl_filter->tables_ok(thd->db, (TABLE_LIST *) thd->lex->auxilliary_table_list.first))); thd->lex->auxilliary_table_list.first)))); } #endif Loading Loading
sql/sql_acl.cc +5 −5 Original line number Diff line number Diff line Loading @@ -1514,7 +1514,7 @@ static bool update_user_table(THD *thd, const char *host, const char *user, */ tables.updating= 1; /* Thanks to bzero, tables.next==0 */ if (!rpl_filter->tables_ok(0, &tables)) if (!(thd->spcont || rpl_filter->tables_ok(0, &tables))) DBUG_RETURN(0); } #endif Loading Loading @@ -2699,7 +2699,7 @@ bool mysql_table_grant(THD *thd, TABLE_LIST *table_list, account in tests. */ tables[0].updating= tables[1].updating= tables[2].updating= 1; if (!rpl_filter->tables_ok(0, tables)) if (!(thd->spcont || rpl_filter->tables_ok(0, tables))) DBUG_RETURN(FALSE); } #endif Loading Loading @@ -2904,7 +2904,7 @@ bool mysql_procedure_grant(THD *thd, TABLE_LIST *table_list, account in tests. */ tables[0].updating= tables[1].updating= 1; if (!rpl_filter->tables_ok(0, tables)) if (!(thd->spcont || rpl_filter->tables_ok(0, tables))) DBUG_RETURN(FALSE); } #endif Loading Loading @@ -3035,7 +3035,7 @@ bool mysql_grant(THD *thd, const char *db, List <LEX_USER> &list, account in tests. */ tables[0].updating= tables[1].updating= 1; if (!rpl_filter->tables_ok(0, tables)) if (!(thd->spcont || rpl_filter->tables_ok(0, tables))) DBUG_RETURN(FALSE); } #endif Loading Loading @@ -4245,7 +4245,7 @@ int open_grant_tables(THD *thd, TABLE_LIST *tables) */ tables[0].updating=tables[1].updating=tables[2].updating= tables[3].updating=tables[4].updating=1; if (!rpl_filter->tables_ok(0, tables)) if (!(thd->spcont || rpl_filter->tables_ok(0, tables))) DBUG_RETURN(1); tables[0].updating=tables[1].updating=tables[2].updating= tables[3].updating=tables[4].updating=0;; Loading
sql/sql_parse.cc +5 −4 Original line number Diff line number Diff line Loading @@ -168,11 +168,12 @@ static bool begin_trans(THD *thd) inline bool all_tables_not_ok(THD *thd, TABLE_LIST *tables) { return (rpl_filter->is_on() && tables && !rpl_filter->tables_ok(thd->db, tables) && !(thd->spcont || rpl_filter->tables_ok(thd->db, tables)) && ((thd->lex->sql_command != SQLCOM_DELETE_MULTI) || !rpl_filter->tables_ok(thd->db, !(thd->spcont || rpl_filter->tables_ok(thd->db, (TABLE_LIST *) thd->lex->auxilliary_table_list.first))); thd->lex->auxilliary_table_list.first)))); } #endif Loading