summaryrefslogtreecommitdiff
path: root/sql/item_subselect.cc
diff options
context:
space:
mode:
authorunknown <bell@sanja.is.com.ua>2002-12-25 12:03:08 +0200
committerunknown <bell@sanja.is.com.ua>2002-12-25 12:03:08 +0200
commitd765d3f37b961e8a83e0c56365de27303d3a986b (patch)
tree938031e244a6fbe846a514dbadd9b37df59d9bdb /sql/item_subselect.cc
parente10a32679096459ee0695d07cd4ae210e21ba227 (diff)
downloadmariadb-git-d765d3f37b961e8a83e0c56365de27303d3a986b.tar.gz
check of LIMIT in row IN subquery (SCRUM related)
mysql-test/r/subselect.result: test of LIMIT in row IN subquery mysql-test/t/subselect.test: test of LIMIT in row IN subquery sql/item_subselect.cc: check of LIMIT in row IN subquery
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;