diff --git a/src/parser/trino/trinoErrorListener.ts b/src/parser/trino/trinoErrorListener.ts index 01722234..85b70597 100644 --- a/src/parser/trino/trinoErrorListener.ts +++ b/src/parser/trino/trinoErrorListener.ts @@ -1,23 +1,24 @@ import { CodeCompletionCore } from 'antlr4-c3'; -import { ErrorListener, ParseErrorListener } from '../common/parseErrorListener'; import { Parser, Token } from 'antlr4ng'; + import { TrinoSqlParser } from '../../lib/trino/TrinoSqlParser'; +import { ErrorListener, ParseErrorListener } from '../common/parseErrorListener'; import { LOCALE_TYPE } from '../common/types'; export class TrinoErrorListener extends ParseErrorListener { private preferredRules: Set; private objectNames: Map = new Map([ - [TrinoSqlParser.RULE_catalogName, 'catalog'], + [TrinoSqlParser.RULE_catalogRef, 'catalog'], [TrinoSqlParser.RULE_catalogNameCreate, 'catalog'], - [TrinoSqlParser.RULE_tableName, 'table'], + [TrinoSqlParser.RULE_tableRef, 'table'], [TrinoSqlParser.RULE_tableNameCreate, 'table'], - [TrinoSqlParser.RULE_viewName, 'view'], + [TrinoSqlParser.RULE_viewRef, 'view'], [TrinoSqlParser.RULE_viewNameCreate, 'view'], - [TrinoSqlParser.RULE_schemaName, 'schema'], + [TrinoSqlParser.RULE_schemaRef, 'schema'], [TrinoSqlParser.RULE_schemaNameCreate, 'schema'], [TrinoSqlParser.RULE_functionName, 'function'], - [TrinoSqlParser.RULE_columnName, 'column'], + [TrinoSqlParser.RULE_columnRef, 'column'], [TrinoSqlParser.RULE_columnNameCreate, 'column'], ]); @@ -45,12 +46,12 @@ export class TrinoErrorListener extends ParseErrorListener { const [ruleType] = candidate; const name = this.objectNames.get(ruleType); switch (ruleType) { - case TrinoSqlParser.RULE_catalogName: - case TrinoSqlParser.RULE_schemaName: - case TrinoSqlParser.RULE_tableName: - case TrinoSqlParser.RULE_viewName: + case TrinoSqlParser.RULE_catalogRef: + case TrinoSqlParser.RULE_schemaRef: + case TrinoSqlParser.RULE_tableRef: + case TrinoSqlParser.RULE_viewRef: case TrinoSqlParser.RULE_functionName: - case TrinoSqlParser.RULE_columnName: { + case TrinoSqlParser.RULE_columnRef: { result.push(`{existing}${name}`); break; } diff --git a/test/parser/mysql/contextCollect/entityCollector.test.ts b/test/parser/mysql/contextCollect/entityCollector.test.ts index 38f95b32..c01ab198 100644 --- a/test/parser/mysql/contextCollect/entityCollector.test.ts +++ b/test/parser/mysql/contextCollect/entityCollector.test.ts @@ -546,8 +546,8 @@ describe('MySQL entity collector tests', () => { startIndex: 1057, startLine: 41, }); - - expect(functionEntity.columns).toBeNull(); - expect(functionEntity.relatedEntities).toBeNull(); + if (isFuncEntityContext(functionEntity)) { + expect(functionEntity.relatedEntities).toBeNull(); + } }); }); diff --git a/test/parser/postgresql/contextCollect/entityCollector.test.ts b/test/parser/postgresql/contextCollect/entityCollector.test.ts index 92b4bbc4..dfcf071c 100644 --- a/test/parser/postgresql/contextCollect/entityCollector.test.ts +++ b/test/parser/postgresql/contextCollect/entityCollector.test.ts @@ -144,7 +144,7 @@ describe('PostgreSql entity collector tests', () => { endColumn: 2, }); if (isCommonEntityContext(tableCreateEntity)) { - expect(tableCreateEntity.columns.length).toBe(3); + expect(tableCreateEntity.columns.length).toBe(2); tableCreateEntity.columns.forEach((columEntity) => { expect(columEntity.entityContextType).toBe(EntityContextType.COLUMN_CREATE); expect(columEntity.belongStmt).toBe(tableCreateEntity.belongStmt);