summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/sql_class.h2
-rw-r--r--sql/sql_insert.cc70
2 files changed, 35 insertions, 37 deletions
diff --git a/sql/sql_class.h b/sql/sql_class.h
index 6a107fed54d..ee51b1828da 100644
--- a/sql/sql_class.h
+++ b/sql/sql_class.h
@@ -6115,7 +6115,6 @@ class select_insert :public select_result_interceptor {
class select_create: public select_insert {
- TABLE_LIST *create_table;
Table_specification_st *create_info;
TABLE_LIST *select_tables;
Alter_info *alter_info;
@@ -6136,7 +6135,6 @@ public:
TABLE_LIST *select_tables_arg):
select_insert(thd_arg, table_arg, NULL, &select_fields, 0, 0, duplic,
ignore, NULL),
- create_table(table_arg),
create_info(create_info_par),
select_tables(select_tables_arg),
alter_info(alter_info_arg),
diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc
index 059ac8b5893..aa0c38411ba 100644
--- a/sql/sql_insert.cc
+++ b/sql/sql_insert.cc
@@ -4507,7 +4507,7 @@ TABLE *select_create::create_table_from_items(THD *thd, List<Item> *items,
if (!(thd->variables.option_bits & OPTION_EXPLICIT_DEF_TIMESTAMP))
promote_first_timestamp_column(&alter_info->create_list);
- if (create_info->fix_create_fields(thd, alter_info, *create_table))
+ if (create_info->fix_create_fields(thd, alter_info, *table_list))
DBUG_RETURN(NULL);
while ((item=it++))
@@ -4548,20 +4548,20 @@ TABLE *select_create::create_table_from_items(THD *thd, List<Item> *items,
}
if (create_info->check_fields(thd, alter_info,
- create_table->table_name,
- create_table->db))
+ table_list->table_name,
+ table_list->db))
DBUG_RETURN(NULL);
DEBUG_SYNC(thd,"create_table_select_before_create");
/* Check if LOCK TABLES + CREATE OR REPLACE of existing normal table*/
- if (thd->locked_tables_mode && create_table->table &&
+ if (thd->locked_tables_mode && table_list->table &&
!create_info->tmp_table())
{
/* Remember information about the locked table */
create_info->pos_in_locked_tables=
- create_table->table->pos_in_locked_tables;
- create_info->mdl_ticket= create_table->table->mdl_ticket;
+ table_list->table->pos_in_locked_tables;
+ create_info->mdl_ticket= table_list->table->mdl_ticket;
}
/*
@@ -4582,10 +4582,10 @@ TABLE *select_create::create_table_from_items(THD *thd, List<Item> *items,
*/
if (!mysql_create_table_no_lock(thd, &ddl_log_state_create, &ddl_log_state_rm,
- &create_table->db,
- &create_table->table_name,
+ &table_list->db,
+ &table_list->table_name,
create_info, alter_info, NULL,
- C_ORDINARY_CREATE, create_table))
+ C_ORDINARY_CREATE, table_list))
{
DEBUG_SYNC(thd,"create_table_select_before_open");
@@ -4593,7 +4593,7 @@ TABLE *select_create::create_table_from_items(THD *thd, List<Item> *items,
If we had a temporary table or a table used with LOCK TABLES,
it was closed by mysql_create()
*/
- create_table->table= 0;
+ table_list->table= 0;
if (!create_info->tmp_table())
{
@@ -4601,20 +4601,20 @@ TABLE *select_create::create_table_from_items(THD *thd, List<Item> *items,
TABLE_LIST::enum_open_strategy save_open_strategy;
/* Force the newly created table to be opened */
- save_open_strategy= create_table->open_strategy;
- create_table->open_strategy= TABLE_LIST::OPEN_NORMAL;
+ save_open_strategy= table_list->open_strategy;
+ table_list->open_strategy= TABLE_LIST::OPEN_NORMAL;
/*
Here we open the destination table, on which we already have
an exclusive metadata lock.
*/
- if (open_table(thd, create_table, &ot_ctx))
+ if (open_table(thd, table_list, &ot_ctx))
{
- quick_rm_table(thd, create_info->db_type, &create_table->db,
- table_case_name(create_info, &create_table->table_name),
+ quick_rm_table(thd, create_info->db_type, &table_list->db,
+ table_case_name(create_info, &table_list->table_name),
0);
}
/* Restore */
- create_table->open_strategy= save_open_strategy;
+ table_list->open_strategy= save_open_strategy;
}
else
{
@@ -4622,8 +4622,8 @@ TABLE *select_create::create_table_from_items(THD *thd, List<Item> *items,
The pointer to the newly created temporary table has been stored in
table->create_info.
*/
- create_table->table= create_info->table;
- if (!create_table->table)
+ table_list->table= create_info->table;
+ if (!table_list->table)
{
/*
This shouldn't happen as creation of temporary table should make
@@ -4635,9 +4635,9 @@ TABLE *select_create::create_table_from_items(THD *thd, List<Item> *items,
}
}
else
- create_table->table= 0; // Create failed
+ table_list->table= 0; // Create failed
- if (unlikely(!(table= create_table->table)))
+ if (unlikely(!(table= table_list->table)))
{
if (likely(!thd->is_error())) // CREATE ... IF NOT EXISTS
my_ok(thd); // succeed, but did nothing
@@ -4679,7 +4679,7 @@ TABLE *select_create::create_table_from_items(THD *thd, List<Item> *items,
mysql_unlock_tables(thd, *lock);
*lock= 0;
}
- drop_open_table(thd, table, &create_table->db, &create_table->table_name);
+ drop_open_table(thd, table, &table_list->db, &table_list->table_name);
ddl_log_complete(&ddl_log_state_rm);
ddl_log_complete(&ddl_log_state_create);
DBUG_RETURN(NULL);
@@ -4726,10 +4726,10 @@ int select_create::postlock(THD *thd, TABLE **tables)
NOTE: for row format CREATE TABLE must be logged before row data.
*/
int error;
- TABLE_LIST *save_next_global= create_table->next_global;
- create_table->next_global= select_tables;
- error= thd->decide_logging_format(create_table);
- create_table->next_global= save_next_global;
+ TABLE_LIST *save_next_global= table_list->next_global;
+ table_list->next_global= select_tables;
+ error= thd->decide_logging_format(table_list);
+ table_list->next_global= save_next_global;
if (unlikely(error))
return error;
@@ -4768,7 +4768,7 @@ select_create::prepare(List<Item> &_values, SELECT_LEX_UNIT *u)
if (create_info->or_replace())
{
/* Original table was deleted. We have to log it */
- log_drop_table(thd, &create_table->db, &create_table->table_name,
+ log_drop_table(thd, &table_list->db, &table_list->table_name,
&create_info->org_storage_engine_name,
create_info->db_type == partition_hton,
&create_info->org_tabledef_version,
@@ -4788,7 +4788,7 @@ select_create::prepare(List<Item> &_values, SELECT_LEX_UNIT *u)
list to keep them inaccessible from inner statements.
e.g. CREATE TEMPORARY TABLE `t1` AS SELECT * FROM `t1`;
*/
- saved_tmp_table_share= thd->save_tmp_table_share(create_table->table);
+ saved_tmp_table_share= thd->save_tmp_table_share(table_list->table);
}
if (extra_lock)
@@ -5087,8 +5087,8 @@ bool select_create::send_eof()
*/
wsrep_key_arr_t key_arr= {0, 0};
wsrep_prepare_keys_for_isolation(thd,
- create_table->db.str,
- create_table->table_name.str,
+ table_list->db.str,
+ table_list->table_name.str,
table_list,
&key_arr);
int rcode= wsrep_thd_append_key(thd, key_arr.keys, key_arr.keys_len,
@@ -5144,8 +5144,8 @@ bool select_create::send_eof()
else
lex_string_set(&ddl_log.org_storage_engine_name,
ha_resolve_storage_engine_name(create_info->db_type));
- ddl_log.org_database= create_table->db;
- ddl_log.org_table= create_table->table_name;
+ ddl_log.org_database= table_list->db;
+ ddl_log.org_table= table_list->table_name;
ddl_log.org_table_id= create_info->tabledef_version;
backup_log_ddl(&ddl_log);
}
@@ -5260,7 +5260,7 @@ void select_create::abort_result_set()
m_plock= NULL;
}
- drop_open_table(thd, table, &create_table->db, &create_table->table_name);
+ drop_open_table(thd, table, &table_list->db, &table_list->table_name);
table=0; // Safety
if (thd->log_current_statement())
{
@@ -5275,7 +5275,7 @@ void select_create::abort_result_set()
ddl_log_update_xid(&ddl_log_state_create, thd->binlog_xid);
ddl_log_update_xid(&ddl_log_state_rm, thd->binlog_xid);
debug_crash_here("ddl_log_create_before_binlog");
- log_drop_table(thd, &create_table->db, &create_table->table_name,
+ log_drop_table(thd, &table_list->db, &table_list->table_name,
&create_info->org_storage_engine_name,
create_info->db_type == partition_hton,
&create_info->tabledef_version,
@@ -5291,8 +5291,8 @@ void select_create::abort_result_set()
ddl_log.query= { C_STRING_WITH_LEN("DROP_AFTER_CREATE") };
ddl_log.org_partitioned= (create_info->db_type == partition_hton);
ddl_log.org_storage_engine_name= create_info->org_storage_engine_name;
- ddl_log.org_database= create_table->db;
- ddl_log.org_table= create_table->table_name;
+ ddl_log.org_database= table_list->db;
+ ddl_log.org_table= table_list->table_name;
ddl_log.org_table_id= create_info->tabledef_version;
backup_log_ddl(&ddl_log);
}