summaryrefslogtreecommitdiff
path: root/sql/sql_union.cc
diff options
context:
space:
mode:
authorunknown <Sinisa@sinisa.nasamreza.org>2002-02-21 13:40:22 +0200
committerunknown <Sinisa@sinisa.nasamreza.org>2002-02-21 13:40:22 +0200
commitc0b5bf5e1454c33eb29d4978ded77b501e77a4b3 (patch)
tree619ba93cf85437c2306a46763a7987c0fc5b152a /sql/sql_union.cc
parent66d4f05c263389526f9fc92733ecfc68c82d3c3d (diff)
downloadmariadb-git-c0b5bf5e1454c33eb29d4978ded77b501e77a4b3.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,