diff --git a/sql/sql_derived.cc b/sql/sql_derived.cc index 13985becff7..63c5bb30474 100644 --- a/sql/sql_derived.cc +++ b/sql/sql_derived.cc @@ -750,7 +750,7 @@ bool mysql_derived_optimize(THD *thd, LEX *lex, TABLE_LIST *derived) if (!derived->is_merged_derived()) { JOIN *join= first_select->join; - unit->set_limit(first_select); + unit->set_limit(unit->global_parameters); unit->optimized= TRUE; if ((res= join->optimize())) goto err; @@ -865,7 +865,7 @@ bool mysql_derived_fill(THD *thd, LEX *lex, TABLE_LIST *derived) } else { - unit->set_limit(first_select); + unit->set_limit(unit->global_parameters); if (unit->select_limit_cnt == HA_POS_ERROR) first_select->options&= ~OPTION_FOUND_ROWS; diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc index 04de1325480..9b5c1c0de37 100644 --- a/sql/sql_lex.cc +++ b/sql/sql_lex.cc @@ -2847,7 +2847,7 @@ void st_select_lex_unit::set_limit(st_select_lex *sl) DBUG_ASSERT(fix_fields_successful); } - val= fix_fields_successful ? item->val_uint() : HA_POS_ERROR; + val= fix_fields_successful ? item->val_uint() : 0; } else val= ULL(0);