diff options
Diffstat (limited to 'sql/sql_tvc.cc')
-rw-r--r-- | sql/sql_tvc.cc | 20 |
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); } - |