summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorGeorgi Kodinov <joro@sun.com>2009-08-21 17:10:55 +0300
committerGeorgi Kodinov <joro@sun.com>2009-08-21 17:10:55 +0300
commit66ce3dee92858acb6f67f8d1751144f7a468a545 (patch)
treed9cb6f1114d4934bbc3a7c8adc313f974b717039 /sql
parent0665536995fa1afe4ac71e13451dd8258063ff36 (diff)
downloadmariadb-git-66ce3dee92858acb6f67f8d1751144f7a468a545.tar.gz
Revert of the fix for bug #46019.
Diffstat (limited to 'sql')
-rw-r--r--sql/sql_acl.cc12
-rw-r--r--sql/table.h23
2 files changed, 4 insertions, 31 deletions
diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc
index a411101fcfd..ab4e518d5dd 100644
--- a/sql/sql_acl.cc
+++ b/sql/sql_acl.cc
@@ -3650,14 +3650,11 @@ bool check_grant(THD *thd, ulong want_access, TABLE_LIST *tables,
continue; // ok
if (!(~table->grant.privilege & want_access) ||
- table->is_non_materialized_derived_table() || table->schema_table)
+ table->derived || table->schema_table)
{
/*
It is subquery in the FROM clause. VIEW set table->derived after
- table opening, but this function is mostly called before table opening.
- When it's called after table opening e.g. for nested views with
- materialization we shoud check the materialized table for access as
- any other table.
+ table opening, but this function always called before table opening.
*/
if (!table->referencing_view)
{
@@ -3670,10 +3667,9 @@ bool check_grant(THD *thd, ulong want_access, TABLE_LIST *tables,
}
continue;
}
-
if (!(grant_table= table_hash_search(sctx->host, sctx->ip,
- table->get_db_name(), sctx->priv_user,
- table->get_table_name(), 0)))
+ table->db, sctx->priv_user,
+ table->table_name,0)))
{
want_access &= ~table->grant.privilege;
goto err; // No grants
diff --git a/sql/table.h b/sql/table.h
index ce9364fad4d..db996d45320 100644
--- a/sql/table.h
+++ b/sql/table.h
@@ -771,29 +771,6 @@ struct TABLE_LIST
void reinit_before_use(THD *thd);
Item_subselect *containing_subselect();
- /**
- @brief True if this TABLE_LIST represents an not yet materialized
- derived table, i.e. the result of a subquery or view execution.
- */
- bool is_non_materialized_derived_table() const
- {
- return derived && !derived_result;
- }
-
- /**
- @brief Returns the name of the database that the referenced table belongs
- to.
- */
- char *get_db_name() { return view != NULL ? view_db.str : db; }
-
- /**
- @brief Returns the name of the table that this TABLE_LIST represents.
-
- @details The unqualified table name or view name for a table or view,
- respectively.
- */
- char *get_table_name() { return view != NULL ? view_name.str : table_name; }
-
private:
bool prep_check_option(THD *thd, uint8 check_opt_type);
bool prep_where(THD *thd, Item **conds, bool no_where_clause);