Commit 339afc62 authored by knielsen@mysql.com's avatar knielsen@mysql.com

After-merge fix.

parent a061c90d
...@@ -4920,7 +4920,7 @@ create table t3 as select bug12472() as i| ...@@ -4920,7 +4920,7 @@ create table t3 as select bug12472() as i|
show create table t3| show create table t3|
Table Create Table Table Create Table
t3 CREATE TABLE `t3` ( t3 CREATE TABLE `t3` (
`i` int(11) default NULL `i` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
select * from t3| select * from t3|
i i
...@@ -4931,7 +4931,7 @@ create table t3 as select * from v1| ...@@ -4931,7 +4931,7 @@ create table t3 as select * from v1|
show create table t3| show create table t3|
Table Create Table Table Create Table
t3 CREATE TABLE `t3` ( t3 CREATE TABLE `t3` (
`j` bigint(11) default NULL `j` bigint(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
select * from t3| select * from t3|
j j
......
...@@ -376,7 +376,7 @@ CREATE TABLE t1 (i1 INT); ...@@ -376,7 +376,7 @@ CREATE TABLE t1 (i1 INT);
CREATE TABLE t2 (i1 INT); CREATE TABLE t2 (i1 INT);
CREATE USER mysqltest_dfn@localhost; CREATE USER mysqltest_dfn@localhost;
CREATE USER mysqltest_inv@localhost; CREATE USER mysqltest_inv@localhost;
GRANT EXECUTE, CREATE ROUTINE, SUPER ON *.* TO mysqltest_dfn@localhost; GRANT EXECUTE, CREATE ROUTINE, TRIGGER ON *.* TO mysqltest_dfn@localhost;
GRANT INSERT ON mysqltest_db1.* TO mysqltest_inv@localhost; GRANT INSERT ON mysqltest_db1.* TO mysqltest_inv@localhost;
CREATE PROCEDURE p1(OUT i INT) DETERMINISTIC NO SQL SET i = 3; CREATE PROCEDURE p1(OUT i INT) DETERMINISTIC NO SQL SET i = 3;
CREATE PROCEDURE p2(INOUT i INT) DETERMINISTIC NO SQL SET i = i * 5; CREATE PROCEDURE p2(INOUT i INT) DETERMINISTIC NO SQL SET i = i * 5;
......
...@@ -718,7 +718,7 @@ CREATE TABLE t2 (i1 INT); ...@@ -718,7 +718,7 @@ CREATE TABLE t2 (i1 INT);
CREATE USER mysqltest_dfn@localhost; CREATE USER mysqltest_dfn@localhost;
CREATE USER mysqltest_inv@localhost; CREATE USER mysqltest_inv@localhost;
GRANT EXECUTE, CREATE ROUTINE, SUPER ON *.* TO mysqltest_dfn@localhost; GRANT EXECUTE, CREATE ROUTINE, TRIGGER ON *.* TO mysqltest_dfn@localhost;
GRANT INSERT ON mysqltest_db1.* TO mysqltest_inv@localhost; GRANT INSERT ON mysqltest_db1.* TO mysqltest_inv@localhost;
connect (definer,localhost,mysqltest_dfn,,mysqltest_db1); connect (definer,localhost,mysqltest_dfn,,mysqltest_db1);
......
...@@ -2538,6 +2538,7 @@ bool select_insert::send_eof() ...@@ -2538,6 +2538,7 @@ bool select_insert::send_eof()
(open) will be returned in this parameter. Since (open) will be returned in this parameter. Since
this table is not included in THD::lock caller is this table is not included in THD::lock caller is
responsible for explicitly unlocking this table. responsible for explicitly unlocking this table.
hooks
NOTES NOTES
If 'create_info->options' bitmask has HA_LEX_CREATE_IF_NOT_EXISTS If 'create_info->options' bitmask has HA_LEX_CREATE_IF_NOT_EXISTS
...@@ -2556,10 +2557,13 @@ bool select_insert::send_eof() ...@@ -2556,10 +2557,13 @@ bool select_insert::send_eof()
static TABLE *create_table_from_items(THD *thd, HA_CREATE_INFO *create_info, static TABLE *create_table_from_items(THD *thd, HA_CREATE_INFO *create_info,
TABLE_LIST *create_table, TABLE_LIST *create_table,
List<create_field> *extra_fields, List<create_field> *extra_fields,
List<Key> *keys, List<Item> *items, List<Key> *keys,
MYSQL_LOCK **lock) List<Item> *items,
MYSQL_LOCK **lock,
TABLEOP_HOOKS *hooks)
{ {
TABLE tmp_table; // Used during 'create_field()' TABLE tmp_table; // Used during 'create_field()'
TABLE_SHARE share;
TABLE *table= 0; TABLE *table= 0;
uint select_field_count= items->elements; uint select_field_count= items->elements;
/* Add selected items to field list */ /* Add selected items to field list */
...@@ -2571,11 +2575,14 @@ static TABLE *create_table_from_items(THD *thd, HA_CREATE_INFO *create_info, ...@@ -2571,11 +2575,14 @@ static TABLE *create_table_from_items(THD *thd, HA_CREATE_INFO *create_info,
tmp_table.alias= 0; tmp_table.alias= 0;
tmp_table.timestamp_field= 0; tmp_table.timestamp_field= 0;
tmp_table.s= &tmp_table.share_not_to_be_used; tmp_table.s= &share;
init_tmp_table_share(&share, "", 0, "", "");
tmp_table.s->db_create_options=0; tmp_table.s->db_create_options=0;
tmp_table.s->blob_ptr_size= portable_sizeof_char_ptr; tmp_table.s->blob_ptr_size= portable_sizeof_char_ptr;
tmp_table.s->db_low_byte_first= test(create_info->db_type == DB_TYPE_MYISAM || tmp_table.s->db_low_byte_first=
create_info->db_type == DB_TYPE_HEAP); test(create_info->db_type == &myisam_hton ||
create_info->db_type == &heap_hton);
tmp_table.null_row=tmp_table.maybe_null=0; tmp_table.null_row=tmp_table.maybe_null=0;
while ((item=it++)) while ((item=it++))
...@@ -2631,6 +2638,7 @@ static TABLE *create_table_from_items(THD *thd, HA_CREATE_INFO *create_info, ...@@ -2631,6 +2638,7 @@ static TABLE *create_table_from_items(THD *thd, HA_CREATE_INFO *create_info,
under explicit LOCK TABLES since it will open gap for deadlock under explicit LOCK TABLES since it will open gap for deadlock
too wide (and also is not backward compatible). too wide (and also is not backward compatible).
*/ */
if (! (table= open_table(thd, create_table, thd->mem_root, (bool*) 0, if (! (table= open_table(thd, create_table, thd->mem_root, (bool*) 0,
(MYSQL_LOCK_IGNORE_FLUSH | (MYSQL_LOCK_IGNORE_FLUSH |
((thd->prelocked_mode == PRELOCKED) ? ((thd->prelocked_mode == PRELOCKED) ?
...@@ -2650,6 +2658,7 @@ static TABLE *create_table_from_items(THD *thd, HA_CREATE_INFO *create_info, ...@@ -2650,6 +2658,7 @@ static TABLE *create_table_from_items(THD *thd, HA_CREATE_INFO *create_info,
save us from that ? save us from that ?
*/ */
table->reginfo.lock_type=TL_WRITE; table->reginfo.lock_type=TL_WRITE;
hooks->prelock(&table, 1); // Call prelock hooks
if (! ((*lock)= mysql_lock_tables(thd, &table, 1, if (! ((*lock)= mysql_lock_tables(thd, &table, 1,
MYSQL_LOCK_IGNORE_FLUSH, &not_used))) MYSQL_LOCK_IGNORE_FLUSH, &not_used)))
{ {
......
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