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.cc9
1 files changed, 5 insertions, 4 deletions
diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc
index 08f0c3badf7..43a7e06724d 100644
--- a/sql/sql_lex.cc
+++ b/sql/sql_lex.cc
@@ -1755,12 +1755,13 @@ bool st_lex::need_correct_ident()
void st_select_lex_unit::set_limit(SELECT_LEX *sl)
{
- ulonglong select_limit_val;
+ ha_rows select_limit_val;
DBUG_ASSERT(! thd->current_arena->is_stmt_prepare());
- select_limit_val= sl->select_limit ? sl->select_limit->val_uint() :
- HA_POS_ERROR;
- offset_limit_cnt= sl->offset_limit ? sl->offset_limit->val_uint() : ULL(0);
+ select_limit_val= (ha_rows)(sl->select_limit ? sl->select_limit->val_uint() :
+ HA_POS_ERROR);
+ offset_limit_cnt= (ha_rows)(sl->offset_limit ? sl->offset_limit->val_uint() :
+ ULL(0));
select_limit_cnt= select_limit_val + offset_limit_cnt;
if (select_limit_cnt < select_limit_val)
select_limit_cnt= HA_POS_ERROR; // no limit