MDEV-10079 sql_yacc.yy: Remove non-parenthesized SELECT from table_ref
This commit is contained in:
parent
971d777ac1
commit
7e66a24dfb
@ -3404,7 +3404,7 @@ f1 f2 f2
|
|||||||
NULL a NULL
|
NULL a NULL
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
select * from (select * left join t on f1=f2) tt;
|
select * from (select * left join t on f1=f2) tt;
|
||||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'on f1=f2) tt' at line 1
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'left join t on f1=f2) tt' at line 1
|
||||||
CREATE TABLE t1 (sku int PRIMARY KEY, pr int);
|
CREATE TABLE t1 (sku int PRIMARY KEY, pr int);
|
||||||
CREATE TABLE t2 (sku int PRIMARY KEY, sppr int, name varchar(255));
|
CREATE TABLE t2 (sku int PRIMARY KEY, sppr int, name varchar(255));
|
||||||
INSERT INTO t1 VALUES
|
INSERT INTO t1 VALUES
|
||||||
|
@ -3415,7 +3415,7 @@ f1 f2 f2
|
|||||||
NULL a NULL
|
NULL a NULL
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
select * from (select * left join t on f1=f2) tt;
|
select * from (select * left join t on f1=f2) tt;
|
||||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'on f1=f2) tt' at line 1
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'left join t on f1=f2) tt' at line 1
|
||||||
CREATE TABLE t1 (sku int PRIMARY KEY, pr int);
|
CREATE TABLE t1 (sku int PRIMARY KEY, pr int);
|
||||||
CREATE TABLE t2 (sku int PRIMARY KEY, sppr int, name varchar(255));
|
CREATE TABLE t2 (sku int PRIMARY KEY, sppr int, name varchar(255));
|
||||||
INSERT INTO t1 VALUES
|
INSERT INTO t1 VALUES
|
||||||
|
@ -3404,7 +3404,7 @@ f1 f2 f2
|
|||||||
NULL a NULL
|
NULL a NULL
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
select * from (select * left join t on f1=f2) tt;
|
select * from (select * left join t on f1=f2) tt;
|
||||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'on f1=f2) tt' at line 1
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'left join t on f1=f2) tt' at line 1
|
||||||
CREATE TABLE t1 (sku int PRIMARY KEY, pr int);
|
CREATE TABLE t1 (sku int PRIMARY KEY, pr int);
|
||||||
CREATE TABLE t2 (sku int PRIMARY KEY, sppr int, name varchar(255));
|
CREATE TABLE t2 (sku int PRIMARY KEY, sppr int, name varchar(255));
|
||||||
INSERT INTO t1 VALUES
|
INSERT INTO t1 VALUES
|
||||||
|
@ -1037,10 +1037,10 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
|
|||||||
%parse-param { THD *thd }
|
%parse-param { THD *thd }
|
||||||
%lex-param { THD *thd }
|
%lex-param { THD *thd }
|
||||||
/*
|
/*
|
||||||
Currently there are 123 shift/reduce conflicts.
|
Currently there are 104 shift/reduce conflicts.
|
||||||
We should not introduce new conflicts any more.
|
We should not introduce new conflicts any more.
|
||||||
*/
|
*/
|
||||||
%expect 123
|
%expect 104
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Comments for TOKENS.
|
Comments for TOKENS.
|
||||||
@ -1878,7 +1878,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
|
|||||||
|
|
||||||
%type <table_list>
|
%type <table_list>
|
||||||
join_table_list join_table
|
join_table_list join_table
|
||||||
table_factor table_ref_select table_ref esc_table_ref
|
table_factor table_ref esc_table_ref
|
||||||
table_primary_ident table_primary_derived
|
table_primary_ident table_primary_derived
|
||||||
select_derived derived_table_list
|
select_derived derived_table_list
|
||||||
select_derived_union
|
select_derived_union
|
||||||
@ -10768,7 +10768,6 @@ when_list:
|
|||||||
/* Warning - may return NULL in case of incomplete SELECT */
|
/* Warning - may return NULL in case of incomplete SELECT */
|
||||||
table_ref:
|
table_ref:
|
||||||
table_factor { $$= $1; }
|
table_factor { $$= $1; }
|
||||||
| table_ref_select { $$= $1; }
|
|
||||||
| join_table
|
| join_table
|
||||||
{
|
{
|
||||||
LEX *lex= Lex;
|
LEX *lex= Lex;
|
||||||
@ -11006,9 +11005,6 @@ table_ref_select:
|
|||||||
}
|
}
|
||||||
if ($2->init_nested_join(lex->thd))
|
if ($2->init_nested_join(lex->thd))
|
||||||
MYSQL_YYABORT;
|
MYSQL_YYABORT;
|
||||||
$$= 0;
|
|
||||||
/* incomplete derived tables return NULL, we must be
|
|
||||||
nested in select_derived rule to be here. */
|
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -11202,6 +11198,12 @@ select_derived:
|
|||||||
MYSQL_YYABORT;
|
MYSQL_YYABORT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
| get_select_lex_derived table_ref_select
|
||||||
|
{
|
||||||
|
LEX *lex= Lex;
|
||||||
|
$$= $1->end_nested_join(lex->thd);
|
||||||
|
DBUG_ASSERT($$ == NULL);
|
||||||
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
select_derived2:
|
select_derived2:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user