summaryrefslogtreecommitdiff
path: root/sql/sql_union.cc
diff options
context:
space:
mode:
authorSinisa@sinisa.nasamreza.org <>2002-02-21 13:40:22 +0200
committerSinisa@sinisa.nasamreza.org <>2002-02-21 13:40:22 +0200
commit7bda9e7239b89b9f38a7c767fa07769fe14b2598 (patch)
tree619ba93cf85437c2306a46763a7987c0fc5b152a /sql/sql_union.cc
parent1f353c007347d0c9981842b55cc02ff133773ad3 (diff)
downloadmariadb-git-7bda9e7239b89b9f38a7c767fa07769fe14b2598.tar.gz
some UNION bug fixes..
Diffstat (limited to 'sql/sql_union.cc')
-rw-r--r--sql/sql_union.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/sql/sql_union.cc b/sql/sql_union.cc
index 0d8a41e9966..51ad2425022 100644
--- a/sql/sql_union.cc
+++ b/sql/sql_union.cc
@@ -76,6 +76,12 @@ int mysql_union(THD *thd, LEX *lex,select_result *result)
for (sl= &lex->select_lex; sl; sl=sl->next)
{
lex->select=sl;
+ thd->offset_limit=sl->offset_limit;
+ thd->select_limit=sl->select_limit+sl->offset_limit;
+ if (thd->select_limit < sl->select_limit)
+ thd->select_limit= HA_POS_ERROR; // no limit
+ if (thd->select_limit == HA_POS_ERROR)
+ sl->options&= ~OPTION_FOUND_ROWS;
res=mysql_select(thd, (TABLE_LIST*) sl->table_list.first,
sl->item_list,
sl->where,