summaryrefslogtreecommitdiff
path: root/sql/sql_tvc.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sql/sql_tvc.cc')
-rw-r--r--sql/sql_tvc.cc20
1 files changed, 10 insertions, 10 deletions
diff --git a/sql/sql_tvc.cc b/sql/sql_tvc.cc
index 43c25db5097..a25f6522bd9 100644
--- a/sql/sql_tvc.cc
+++ b/sql/sql_tvc.cc
@@ -181,7 +181,7 @@ bool get_type_attributes_for_tvc(THD *thd,
Item *item;
for (uint holder_pos= 0 ; (item= it++); holder_pos++)
{
- DBUG_ASSERT(item->fixed);
+ DBUG_ASSERT(item->is_fixed());
holders[holder_pos].add_argument(item);
}
}
@@ -257,7 +257,6 @@ bool table_value_constr::prepare(THD *thd, SELECT_LEX *sl,
Item_type_holder(thd, item, holders[pos].type_handler(),
&holders[pos]/*Type_all_attributes*/,
holders[pos].get_maybe_null());
- new_holder->fix_fields(thd, 0);
sl->item_list.push_back(new_holder);
}
if (arena)
@@ -281,7 +280,7 @@ bool table_value_constr::prepare(THD *thd, SELECT_LEX *sl,
for (; order; order=order->next)
{
Item *order_item= *order->item;
- if (order_item->type() == Item::INT_ITEM && order_item->basic_const_item())
+ if (order_item->is_order_clause_position())
{
uint count= 0;
if (order->counter_used)
@@ -333,7 +332,7 @@ int table_value_constr::save_explain_data_intern(THD *thd,
explain->select_id= select_lex->select_number;
explain->select_type= select_lex->type;
- explain->linkage= select_lex->linkage;
+ explain->linkage= select_lex->get_linkage();
explain->using_temporary= false;
explain->using_filesort= false;
/* Setting explain->message means that all other members are invalid */
@@ -407,9 +406,11 @@ bool table_value_constr::exec(SELECT_LEX *sl)
while ((elem= li++))
{
+ THD *cur_thd= sl->parent_lex->thd;
if (send_records >= sl->master_unit()->select_limit_cnt)
break;
int rc= result->send_data(*elem);
+ cur_thd->get_stmt_da()->inc_current_row_for_warning();
if (!rc)
send_records++;
else if (rc > 0)
@@ -624,8 +625,8 @@ static bool create_tvc_name(THD *thd, st_select_lex *parent_select,
bool table_value_constr::to_be_wrapped_as_with_tail()
{
- return select_lex->master_unit()->first_select()->next_select() &&
- select_lex->order_list.elements && select_lex->explicit_limit;
+ return select_lex->master_unit()->first_select()->next_select() &&
+ select_lex->order_list.elements && select_lex->explicit_limit;
}
@@ -676,7 +677,7 @@ st_select_lex *wrap_tvc(THD *thd, st_select_lex *tvc_sl,
wrapper_sl->nest_level= tvc_sl->nest_level;
wrapper_sl->parsing_place= tvc_sl->parsing_place;
- wrapper_sl->linkage= tvc_sl->linkage;
+ wrapper_sl->set_linkage(tvc_sl->get_linkage());
wrapper_sl->exclude_from_table_unique_test=
tvc_sl->exclude_from_table_unique_test;
@@ -709,7 +710,7 @@ st_select_lex *wrap_tvc(THD *thd, st_select_lex *tvc_sl,
the derived table tvc_x of the transformation
*/
derived_unit->attach_single(tvc_sl);
- tvc_sl->linkage= DERIVED_TABLE_TYPE;
+ tvc_sl->set_linkage(DERIVED_TABLE_TYPE);
/*
Generate the name of the derived table created for TVC and
@@ -954,7 +955,7 @@ Item *Item_func_in::in_predicate_to_in_subs_transformer(THD *thd,
mysql_init_select(lex);
tvc_select= lex->current_select;
derived_unit= tvc_select->master_unit();
- tvc_select->linkage= DERIVED_TABLE_TYPE;
+ tvc_select->set_linkage(DERIVED_TABLE_TYPE);
/* Create TVC used in the transformation */
if (create_value_list_for_tvc(thd, &values))
@@ -1156,4 +1157,3 @@ bool JOIN::transform_in_predicates_into_in_subq(THD *thd)
thd->lex->current_select= save_current_select;
DBUG_RETURN(false);
}
-