summaryrefslogtreecommitdiff
path: root/sql/sql_parse.cc
diff options
context:
space:
mode:
authorunknown <tsmith@ramayana.hindu.god>2007-12-07 03:56:03 -0700
committerunknown <tsmith@ramayana.hindu.god>2007-12-07 03:56:03 -0700
commit284cb0e560293187b9d2d7a38aa71de9d9637567 (patch)
treeb719b75e443bf2787a2c520cc6e9955e4eb6a4a8 /sql/sql_parse.cc
parentb5f919ddfa3bfe6202302bb3e88e252c68550ed7 (diff)
parent6e776686d4cbaac919eee8300b2c85e2cf5825ec (diff)
downloadmariadb-git-284cb0e560293187b9d2d7a38aa71de9d9637567.tar.gz
Merge tsmith@bk-internal.mysql.com:/home/bk/mysql-5.1
into ramayana.hindu.god:/home/tsmith/m/bk/maint/51 sql/sql_acl.cc: Auto merged sql/sql_parse.cc: Auto merged sql/sql_table.cc: Auto merged mysql-test/r/grant.result: Manual merge mysql-test/t/grant.test: Manual merge
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 df425557bdf..887cc10d828 100644
--- a/sql/sql_parse.cc
+++ b/sql/sql_parse.cc
@@ -7025,8 +7025,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)) ||