summaryrefslogtreecommitdiff
path: root/sql/sql_parse.cc
diff options
context:
space:
mode:
authorunknown <tnurnberg@mysql.com/white.intern.koehntopp.de>2007-10-23 07:00:13 +0200
committerunknown <tnurnberg@mysql.com/white.intern.koehntopp.de>2007-10-23 07:00:13 +0200
commita06c4b535308d641b354615f6a4c0ff06c3f9d0e (patch)
tree15cace7a69a5b588dbd5475c283afae69f75d1e4 /sql/sql_parse.cc
parent89cca4b3696a7a958eaae030aeff38b47a9fd7d1 (diff)
parentf9d068bc09c3b415e8212897692b93a9fee5aae1 (diff)
downloadmariadb-git-a06c4b535308d641b354615f6a4c0ff06c3f9d0e.tar.gz
Merge mysql.com:/scratch/tnurnberg/20901/41-20901
into mysql.com:/scratch/tnurnberg/20901/50-20901 mysql-test/r/grant.result: Auto merged mysql-test/t/create.test: Auto merged mysql-test/t/grant.test: Auto merged sql/sql_parse.cc: Auto merged mysql-test/r/create.result: SCCS merged
Diffstat (limited to 'sql/sql_parse.cc')
-rw-r--r--sql/sql_parse.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc
index 084bcfc3c76..e24f679d0fb 100644
--- a/sql/sql_parse.cc
+++ b/sql/sql_parse.cc
@@ -7600,8 +7600,15 @@ bool create_table_precheck(THD *thd, TABLE_LIST *tables,
bool error= TRUE; // Error message is given
DBUG_ENTER("create_table_precheck");
+ /*
+ Require CREATE [TEMPORARY] privilege on new table; for
+ CREATE TABLE ... SELECT, also require INSERT.
+ */
+
want_priv= ((lex->create_info.options & HA_LEX_CREATE_TMP_TABLE) ?
- CREATE_TMP_ACL : CREATE_ACL);
+ CREATE_TMP_ACL : CREATE_ACL) |
+ (select_lex->item_list.elements ? INSERT_ACL : 0);
+
if (check_access(thd, want_priv, create_table->db,
&create_table->grant.privilege, 0, 0,
test(create_table->schema_table)) ||