|
@@ -2526,23 +2526,25 @@ TableReference_EDIT
|
|
|
TablePrimaryOrJoinedTable
|
|
TablePrimaryOrJoinedTable
|
|
|
: TablePrimary
|
|
: TablePrimary
|
|
|
{
|
|
{
|
|
|
- $$ = $1;
|
|
|
|
|
-
|
|
|
|
|
- var idx = parser.yy.latestTablePrimaries.length - 1;
|
|
|
|
|
- var tables = [];
|
|
|
|
|
- do {
|
|
|
|
|
- var tablePrimary = parser.yy.latestTablePrimaries[idx];
|
|
|
|
|
- if (!tablePrimary.subQueryAlias) {
|
|
|
|
|
- tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain })
|
|
|
|
|
- }
|
|
|
|
|
- idx--;
|
|
|
|
|
- } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias)
|
|
|
|
|
-
|
|
|
|
|
- if (tables.length > 0) {
|
|
|
|
|
- $$.suggestJoins = {
|
|
|
|
|
- prependJoin: true,
|
|
|
|
|
- tables: tables
|
|
|
|
|
- };
|
|
|
|
|
|
|
+ $$ = $1;
|
|
|
|
|
+
|
|
|
|
|
+ if (parser.yy.latestTablePrimaries.length > 0) {
|
|
|
|
|
+ var idx = parser.yy.latestTablePrimaries.length - 1;
|
|
|
|
|
+ var tables = [];
|
|
|
|
|
+ do {
|
|
|
|
|
+ var tablePrimary = parser.yy.latestTablePrimaries[idx];
|
|
|
|
|
+ if (!tablePrimary.subQueryAlias) {
|
|
|
|
|
+ tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain })
|
|
|
|
|
+ }
|
|
|
|
|
+ idx--;
|
|
|
|
|
+ } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias)
|
|
|
|
|
+
|
|
|
|
|
+ if (tables.length > 0) {
|
|
|
|
|
+ $$.suggestJoins = {
|
|
|
|
|
+ prependJoin: true,
|
|
|
|
|
+ tables: tables
|
|
|
|
|
+ };
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
| JoinedTable
|
|
| JoinedTable
|
|
@@ -2577,7 +2579,9 @@ Joins
|
|
|
if ($4.suggestKeywords) {
|
|
if ($4.suggestKeywords) {
|
|
|
$$.suggestKeywords = $4.suggestKeywords;
|
|
$$.suggestKeywords = $4.suggestKeywords;
|
|
|
}
|
|
}
|
|
|
- parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true;
|
|
|
|
|
|
|
+ if (parser.yy.latestTablePrimaries.length > 0) {
|
|
|
|
|
+ parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
| Joins JoinType OptionalImpalaBroadcastOrShuffle TablePrimary OptionalJoinCondition
|
|
| Joins JoinType OptionalImpalaBroadcastOrShuffle TablePrimary OptionalJoinCondition
|
|
|
{
|
|
{
|
|
@@ -2593,7 +2597,9 @@ Joins
|
|
|
if ($4.suggestKeywords) {
|
|
if ($4.suggestKeywords) {
|
|
|
$$.suggestKeywords = $4.suggestKeywords;
|
|
$$.suggestKeywords = $4.suggestKeywords;
|
|
|
}
|
|
}
|
|
|
- parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true;
|
|
|
|
|
|
|
+ if (parser.yy.latestTablePrimaries.length > 0) {
|
|
|
|
|
+ parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
;
|
|
;
|
|
|
|
|
|
|
@@ -2618,7 +2624,7 @@ Join_EDIT
|
|
|
if (!$2 && parser.isImpala()) {
|
|
if (!$2 && parser.isImpala()) {
|
|
|
parser.suggestKeywords(['[BROADCAST]', '[SHUFFLE]']);
|
|
parser.suggestKeywords(['[BROADCAST]', '[SHUFFLE]']);
|
|
|
}
|
|
}
|
|
|
- if (!$2) {
|
|
|
|
|
|
|
+ if (!$2 && parser.yy.latestTablePrimaries.length > 0) {
|
|
|
var idx = parser.yy.latestTablePrimaries.length - 1;
|
|
var idx = parser.yy.latestTablePrimaries.length - 1;
|
|
|
var tables = [];
|
|
var tables = [];
|
|
|
do {
|
|
do {
|