MXS-3535 Collect information from ON clause

In the case of qc_sqlite, it is done "precisely", while in the
case of qc_mysqlembedded rather bluntly. Not time well spent
to figure out exactly which pointer chains need to be walked.
This commit is contained in:
Johan Wikman
2021-05-24 10:54:00 +03:00
parent e7f9a5bd65
commit aa1b481197
3 changed files with 92 additions and 3 deletions

View File

@ -1615,12 +1615,16 @@ table_reference(A) ::= join_table(X). {
join_opt ::= .
join_opt ::= JOIN_KW.
join_table(A) ::= table_reference(X) join_opt JOIN table_reference(Y) join_condition. {
%type join_condition {ExprSpan}
%destructor join_condition {sqlite3ExprDelete(pParse->db, $$.pExpr);}
join_table(A) ::= table_reference(X) join_opt JOIN table_reference(Y) join_condition(Z). {
Y->a[Y->nSrc - 1].pOn = Z.pExpr;
A = sqlite3SrcListCat(pParse->db, X, Y);
}
join_condition ::= ON expr(X). {
sqlite3ExprDelete(pParse->db, X.pExpr);
join_condition(A) ::= ON expr(X). {
A = X;
}
%type escaped_table_reference {SrcList*}