fix: add missing expression predicate to impala parser(#225)

* fix(impala): add select supprt is true/false/unknown and support more SEMICOLON

* fix(impala): not use emptyStatement replace SEMICOLON

* test(impala): add select unit test sql and test splitSQLByStatement
This commit is contained in:
霜序
2023-11-30 19:56:07 +08:00
committed by GitHub
parent f93ffb93bf
commit 484c881583
14 changed files with 6957 additions and 6245 deletions

View File

@ -1,7 +1,11 @@
import { Token } from 'antlr4ts';
import { CandidatesCollection } from 'antlr4-c3';
import { ImpalaSqlLexer } from '../lib/impala/ImpalaSqlLexer';
import { ImpalaSqlParser, ProgramContext, StatementContext } from '../lib/impala/ImpalaSqlParser';
import {
ImpalaSqlParser,
ProgramContext,
SqlStatementContext,
} from '../lib/impala/ImpalaSqlParser';
import BasicParser from './common/basicParser';
import { ImpalaSqlParserListener } from '../lib/impala/ImpalaSqlParserListener';
import { SyntaxContextType, Suggestions, SyntaxSuggestion } from './common/basic-parser-types';
@ -125,13 +129,13 @@ export default class ImpalaSQL extends BasicParser<
}
export class ImpalaSqlSplitListener implements ImpalaSqlParserListener {
private _statementContext: StatementContext[] = [];
private _statementContext: SqlStatementContext[] = [];
exitStatement = (ctx: StatementContext) => {
exitSqlStatement = (ctx: SqlStatementContext) => {
this._statementContext.push(ctx);
};
enterStatement = (ctx: StatementContext) => {};
enterSqlStatement = (ctx: SqlStatementContext) => {};
get statementsContext() {
return this._statementContext;