summaryrefslogtreecommitdiff
path: root/sql/sql_lex.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sql/sql_lex.cc')
-rw-r--r--sql/sql_lex.cc24
1 files changed, 6 insertions, 18 deletions
diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc
index fc1af9837a9..39cf4cd1e46 100644
--- a/sql/sql_lex.cc
+++ b/sql/sql_lex.cc
@@ -2682,15 +2682,9 @@ ha_rows st_select_lex::get_offset()
if (offset_limit)
{
// see comment for st_select_lex::get_limit()
- bool fix_fields_successful= true;
- if (!offset_limit->fixed)
- {
- fix_fields_successful= !offset_limit->fix_fields(master_unit()->thd,
- NULL);
-
- DBUG_ASSERT(fix_fields_successful);
- }
- val= fix_fields_successful ? offset_limit->val_uint() : HA_POS_ERROR;
+ bool err= offset_limit->fix_fields_if_needed(master_unit()->thd, NULL);
+ DBUG_ASSERT(!err);
+ val= err ? HA_POS_ERROR : offset_limit->val_uint();
}
return (ha_rows)val;
@@ -2729,15 +2723,9 @@ ha_rows st_select_lex::get_limit()
fix_fields() implementation. Also added runtime check against a result
of fix_fields() in order to handle error condition in non-debug build.
*/
- bool fix_fields_successful= true;
- if (!select_limit->fixed)
- {
- fix_fields_successful= !select_limit->fix_fields(master_unit()->thd,
- NULL);
-
- DBUG_ASSERT(fix_fields_successful);
- }
- val= fix_fields_successful ? select_limit->val_uint() : HA_POS_ERROR;
+ bool err= select_limit->fix_fields_if_needed(master_unit()->thd, NULL);
+ DBUG_ASSERT(!err);
+ val= err ? HA_POS_ERROR : select_limit->val_uint();
}
return (ha_rows)val;