summaryrefslogtreecommitdiff
path: root/sql/item_subselect.cc
diff options
context:
space:
mode:
authorbell@sanja.is.com.ua <>2002-12-25 12:03:08 +0200
committerbell@sanja.is.com.ua <>2002-12-25 12:03:08 +0200
commite67a0d2b86b9a2db048fafdb712b73a399d84a05 (patch)
tree938031e244a6fbe846a514dbadd9b37df59d9bdb /sql/item_subselect.cc
parent980ca356456cdf597e1a0b6b3deea1ad871b65a6 (diff)
downloadmariadb-git-e67a0d2b86b9a2db048fafdb712b73a399d84a05.tar.gz
check of LIMIT in row IN subquery (SCRUM related)
Diffstat (limited to 'sql/item_subselect.cc')
-rw-r--r--sql/item_subselect.cc14
1 files changed, 14 insertions, 0 deletions
diff --git a/sql/item_subselect.cc b/sql/item_subselect.cc
index 74824fc7757..6bcb78134a2 100644
--- a/sql/item_subselect.cc
+++ b/sql/item_subselect.cc
@@ -517,6 +517,13 @@ void Item_in_subselect::row_value_transformer(st_select_lex *select_lex,
Item *left_expr)
{
DBUG_ENTER("Item_in_subselect::row_value_transformer");
+ if (select_lex->master_unit()->global_parameters->select_limit !=
+ HA_POS_ERROR)
+ {
+ my_error(ER_NOT_SUPPORTED_YET, MYF(0),
+ "LIMIT & IN/ALL/ANY/SOME subquery");
+ DBUG_VOID_RETURN;
+ }
Item_in_optimizer *optimizer;
substitution= optimizer= new Item_in_optimizer(left_expr, this);
if (!optimizer)
@@ -530,6 +537,13 @@ void Item_in_subselect::row_value_transformer(st_select_lex *select_lex,
DBUG_VOID_RETURN;
for (SELECT_LEX * sl= select_lex; sl; sl= sl->next_select())
{
+ if (select_lex->select_limit != HA_POS_ERROR)
+ {
+ my_error(ER_NOT_SUPPORTED_YET, MYF(0),
+ "LIMIT & IN/ALL/ANY/SOME subquery");
+ DBUG_VOID_RETURN;
+ }
+
select_lex->dependent= 1;
Item *item= 0;