|
33 | 33 | import org.pgcodekeeper.core.database.api.schema.meta.IMetaContainer; |
34 | 34 | import org.pgcodekeeper.core.database.base.parser.QNameParser; |
35 | 35 | import org.pgcodekeeper.core.database.pg.parser.PgParserUtils; |
36 | | -import org.pgcodekeeper.core.database.pg.parser.generated.SQLParser.After_opsContext; |
37 | | -import org.pgcodekeeper.core.database.pg.parser.generated.SQLParser.Alias_clauseContext; |
38 | | -import org.pgcodekeeper.core.database.pg.parser.generated.SQLParser.From_function_column_defContext; |
39 | | -import org.pgcodekeeper.core.database.pg.parser.generated.SQLParser.From_itemContext; |
40 | | -import org.pgcodekeeper.core.database.pg.parser.generated.SQLParser.From_primaryContext; |
41 | | -import org.pgcodekeeper.core.database.pg.parser.generated.SQLParser.From_rows_with_aliasContext; |
42 | | -import org.pgcodekeeper.core.database.pg.parser.generated.SQLParser.Function_callContext; |
43 | | -import org.pgcodekeeper.core.database.pg.parser.generated.SQLParser.Groupby_clauseContext; |
44 | | -import org.pgcodekeeper.core.database.pg.parser.generated.SQLParser.Grouping_elementContext; |
45 | | -import org.pgcodekeeper.core.database.pg.parser.generated.SQLParser.Grouping_element_listContext; |
46 | | -import org.pgcodekeeper.core.database.pg.parser.generated.SQLParser.IdentifierContext; |
47 | | -import org.pgcodekeeper.core.database.pg.parser.generated.SQLParser.IndirectionContext; |
48 | | -import org.pgcodekeeper.core.database.pg.parser.generated.SQLParser.Indirection_listContext; |
49 | | -import org.pgcodekeeper.core.database.pg.parser.generated.SQLParser.Indirection_varContext; |
50 | | -import org.pgcodekeeper.core.database.pg.parser.generated.SQLParser.Orderby_clauseContext; |
51 | | -import org.pgcodekeeper.core.database.pg.parser.generated.SQLParser.Perform_stmtContext; |
52 | | -import org.pgcodekeeper.core.database.pg.parser.generated.SQLParser.Schema_qualified_nameContext; |
53 | | -import org.pgcodekeeper.core.database.pg.parser.generated.SQLParser.Select_listContext; |
54 | | -import org.pgcodekeeper.core.database.pg.parser.generated.SQLParser.Select_opsContext; |
55 | | -import org.pgcodekeeper.core.database.pg.parser.generated.SQLParser.Select_primaryContext; |
56 | | -import org.pgcodekeeper.core.database.pg.parser.generated.SQLParser.Select_stmtContext; |
57 | | -import org.pgcodekeeper.core.database.pg.parser.generated.SQLParser.Select_stmt_no_parensContext; |
58 | | -import org.pgcodekeeper.core.database.pg.parser.generated.SQLParser.Select_sublistContext; |
59 | | -import org.pgcodekeeper.core.database.pg.parser.generated.SQLParser.Table_subqueryContext; |
60 | | -import org.pgcodekeeper.core.database.pg.parser.generated.SQLParser.Value_expression_primaryContext; |
61 | | -import org.pgcodekeeper.core.database.pg.parser.generated.SQLParser.Values_stmtContext; |
62 | | -import org.pgcodekeeper.core.database.pg.parser.generated.SQLParser.Values_valuesContext; |
63 | | -import org.pgcodekeeper.core.database.pg.parser.generated.SQLParser.VexContext; |
64 | | -import org.pgcodekeeper.core.database.pg.parser.generated.SQLParser.Window_definitionContext; |
65 | | -import org.pgcodekeeper.core.database.pg.parser.generated.SQLParser.With_clauseContext; |
66 | | -import org.pgcodekeeper.core.database.pg.parser.generated.SQLParser.With_queryContext; |
| 36 | +import org.pgcodekeeper.core.database.pg.parser.generated.SQLParser.*; |
67 | 37 | import org.pgcodekeeper.core.database.pg.parser.rulectx.PgSelectOps; |
68 | 38 | import org.pgcodekeeper.core.database.pg.parser.rulectx.PgSelectStmt; |
69 | 39 | import org.pgcodekeeper.core.database.pg.parser.rulectx.PgVex; |
@@ -582,16 +552,19 @@ private void from(From_itemContext fromItem) { |
582 | 552 | lateralAllowed = primary.LATERAL() != null; |
583 | 553 | List<ModPair<String, String>> columnList = new PgSelect(this).analyze(subquery.select_stmt()); |
584 | 554 |
|
585 | | - String tableSubQueryAlias = alias.alias.getText(); |
586 | | - addReference(tableSubQueryAlias, null); |
| 555 | + var aliasCtx = alias.alias; |
| 556 | + if (aliasCtx != null) { |
| 557 | + String tableSubQueryAlias = aliasCtx.getText(); |
| 558 | + addReference(tableSubQueryAlias, null); |
587 | 559 |
|
588 | | - var columnAliases = alias.column_alias; |
589 | | - for (int i = 0; i < columnAliases.size() && i < columnList.size(); i++) { |
590 | | - columnList.set(i, new ModPair<>(columnAliases.get(i).getText(), |
591 | | - columnList.get(i).getSecond())); |
592 | | - } |
| 560 | + var columnAliases = alias.column_alias; |
| 561 | + for (int i = 0; i < columnAliases.size() && i < columnList.size(); i++) { |
| 562 | + columnList.set(i, new ModPair<>(columnAliases.get(i).getText(), |
| 563 | + columnList.get(i).getSecond())); |
| 564 | + } |
593 | 565 |
|
594 | | - complexNamespace.put(tableSubQueryAlias, new ArrayList<>(columnList)); |
| 566 | + complexNamespace.put(tableSubQueryAlias, new ArrayList<>(columnList)); |
| 567 | + } |
595 | 568 | } finally { |
596 | 569 | lateralAllowed = oldLateral; |
597 | 570 | } |
|
0 commit comments