Commit 5b6b1663 authored by Oleksandr Byelkin's avatar Oleksandr Byelkin

MDEV-20730: Syntax error on SELECT INTO @variable with CTE

added forgotem WITH option to spacial case with INTO
parent 421d52e8
...@@ -1673,3 +1673,14 @@ with columns as (select 1 as t) select * from columns; ...@@ -1673,3 +1673,14 @@ with columns as (select 1 as t) select * from columns;
t t
1 1
use test; use test;
#
# MDEV-20730: Syntax error on SELECT INTO @variable with CTE
#
with data as (select 1 as id)
select id into @myid from data;
set @save_sql_mode = @@sql_mode;
set sql_mode="oracle";
with data as (select 1 as id)
select id into @myid from data;
set sql_mode= @save_sql_mode;
# End of 10.4 tests
...@@ -1182,3 +1182,18 @@ with t as (select 1 as t) select * from t; ...@@ -1182,3 +1182,18 @@ with t as (select 1 as t) select * from t;
with columns as (select 1 as t) select * from columns; with columns as (select 1 as t) select * from columns;
use test; use test;
--echo #
--echo # MDEV-20730: Syntax error on SELECT INTO @variable with CTE
--echo #
with data as (select 1 as id)
select id into @myid from data;
set @save_sql_mode = @@sql_mode;
set sql_mode="oracle";
with data as (select 1 as id)
select id into @myid from data;
set sql_mode= @save_sql_mode;
--echo # End of 10.4 tests
...@@ -9213,6 +9213,24 @@ select_into: ...@@ -9213,6 +9213,24 @@ select_into:
if (Lex->select_finalize(unit)) if (Lex->select_finalize(unit))
MYSQL_YYABORT; MYSQL_YYABORT;
} }
| with_clause
select_into_query_specification
{
if (Lex->push_select($2))
MYSQL_YYABORT;
}
opt_order_limit_lock
{
SELECT_LEX_UNIT *unit;
if (!(unit = Lex->create_unit($2)))
MYSQL_YYABORT;
if ($4)
unit= Lex->add_tail_to_query_expression_body(unit, $4);
unit->set_with_clause($1);
$1->attach_to($2);
if (Lex->select_finalize(unit))
MYSQL_YYABORT;
}
; ;
simple_table: simple_table:
......
...@@ -9314,6 +9314,24 @@ select_into: ...@@ -9314,6 +9314,24 @@ select_into:
if (Lex->select_finalize(unit)) if (Lex->select_finalize(unit))
MYSQL_YYABORT; MYSQL_YYABORT;
} }
| with_clause
select_into_query_specification
{
if (Lex->push_select($2))
MYSQL_YYABORT;
}
opt_order_limit_lock
{
SELECT_LEX_UNIT *unit;
if (!(unit = Lex->create_unit($2)))
MYSQL_YYABORT;
if ($4)
unit= Lex->add_tail_to_query_expression_body(unit, $4);
unit->set_with_clause($1);
$1->attach_to($2);
if (Lex->select_finalize(unit))
MYSQL_YYABORT;
}
; ;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment