build: open ts strict check (#279)
* feat: no check lib dir * feat: open strict check to src dir * test: update test tsconfig.json * feat: remove any type * feat: do not export AbstractParseTreeVisitor * feat: export StmtContextType as enum * build: improve antlr4 script
This commit is contained in:
@ -19,7 +19,7 @@ describe('FlinkSQL benchmark tests', () => {
|
||||
const reportData: string[] = [];
|
||||
|
||||
test('createTable Over 100 Rows', async () => {
|
||||
const [totalTimes, averageTimes, msg] = benchmark('CreateTable Over 100 Rows', () => {
|
||||
const [totalTimes, averageTimes] = benchmark('CreateTable Over 100 Rows', () => {
|
||||
const testSQL = features.createTable[0];
|
||||
const res = flink.validate(testSQL);
|
||||
expect(res).toEqual([]);
|
||||
@ -28,7 +28,7 @@ describe('FlinkSQL benchmark tests', () => {
|
||||
});
|
||||
|
||||
test('createTable Over 1000 Rows', async () => {
|
||||
const [totalTimes, averageTimes, msg] = benchmark('CreateTable Over 1000 Rows', () => {
|
||||
const [totalTimes, averageTimes] = benchmark('CreateTable Over 1000 Rows', () => {
|
||||
const testSQL = features.createTable[1];
|
||||
const res = flink.validate(testSQL);
|
||||
expect(res).toEqual([]);
|
||||
@ -37,7 +37,7 @@ describe('FlinkSQL benchmark tests', () => {
|
||||
});
|
||||
|
||||
test('createTable Over 5000 Rows', async () => {
|
||||
const [totalTimes, averageTimes, msg] = benchmark('CreateTable Over 5000 Rows', () => {
|
||||
const [totalTimes, averageTimes] = benchmark('CreateTable Over 5000 Rows', () => {
|
||||
const testSQL = features.createTable[2];
|
||||
const res = flink.validate(testSQL);
|
||||
expect(res).toEqual([]);
|
||||
@ -46,7 +46,7 @@ describe('FlinkSQL benchmark tests', () => {
|
||||
});
|
||||
|
||||
test('selectTable Over 100 Rows', async () => {
|
||||
const [totalTimes, averageTimes, msg] = benchmark('SelectTable Over 100 Rows', () => {
|
||||
const [totalTimes, averageTimes] = benchmark('SelectTable Over 100 Rows', () => {
|
||||
const testSQL = features.selectTable[0];
|
||||
const res = flink.validate(testSQL);
|
||||
expect(res).toEqual([]);
|
||||
@ -55,7 +55,7 @@ describe('FlinkSQL benchmark tests', () => {
|
||||
});
|
||||
|
||||
test('selectTable Over 1000 Rows', async () => {
|
||||
const [totalTimes, averageTimes, msg] = benchmark('SelectTable Over 1000 Rows', () => {
|
||||
const [totalTimes, averageTimes] = benchmark('SelectTable Over 1000 Rows', () => {
|
||||
const testSQL = features.selectTable[1];
|
||||
const res = flink.validate(testSQL);
|
||||
expect(res).toEqual([]);
|
||||
@ -64,7 +64,7 @@ describe('FlinkSQL benchmark tests', () => {
|
||||
});
|
||||
|
||||
test('selectTable Over 5000 Rows', async () => {
|
||||
const [totalTimes, averageTimes, msg] = benchmark('SelectTable Over 5000 Rows', () => {
|
||||
const [totalTimes, averageTimes] = benchmark('SelectTable Over 5000 Rows', () => {
|
||||
const testSQL = features.selectTable[2];
|
||||
const res = flink.validate(testSQL);
|
||||
expect(res).toEqual([]);
|
||||
@ -73,7 +73,7 @@ describe('FlinkSQL benchmark tests', () => {
|
||||
});
|
||||
|
||||
test('insertTable Over 100 Rows', async () => {
|
||||
const [totalTimes, averageTimes, msg] = benchmark('InsertTable Over 100 Rows', () => {
|
||||
const [totalTimes, averageTimes] = benchmark('InsertTable Over 100 Rows', () => {
|
||||
const testSQL = features.insertTable[0];
|
||||
const res = flink.validate(testSQL);
|
||||
expect(res).toEqual([]);
|
||||
@ -82,7 +82,7 @@ describe('FlinkSQL benchmark tests', () => {
|
||||
});
|
||||
|
||||
test('insertTable Over 1000 Rows', async () => {
|
||||
const [totalTimes, averageTimes, msg] = benchmark('InsertTable Over 1000 Rows', () => {
|
||||
const [totalTimes, averageTimes] = benchmark('InsertTable Over 1000 Rows', () => {
|
||||
const testSQL = features.insertTable[1];
|
||||
const res = flink.validate(testSQL);
|
||||
expect(res).toEqual([]);
|
||||
@ -91,7 +91,7 @@ describe('FlinkSQL benchmark tests', () => {
|
||||
});
|
||||
|
||||
test('insertTable Over 5000 Rows', async () => {
|
||||
const [totalTimes, averageTimes, msg] = benchmark('InsertTable Over 5000 Rows', () => {
|
||||
const [totalTimes, averageTimes] = benchmark('InsertTable Over 5000 Rows', () => {
|
||||
const testSQL = features.insertTable[2];
|
||||
const res = flink.validate(testSQL);
|
||||
expect(res).toEqual([]);
|
||||
|
@ -1,4 +1,3 @@
|
||||
import { ErrorNode, ParserRuleContext, TerminalNode } from 'antlr4ng';
|
||||
import { FlinkSQL } from 'src/parser/flink';
|
||||
import { FlinkSqlParserListener } from 'src/lib/flink/FlinkSqlParserListener';
|
||||
import { TableExpressionContext } from 'src/lib/flink/FlinkSqlParser';
|
||||
@ -11,20 +10,17 @@ describe('Flink SQL Listener Tests', () => {
|
||||
const parseTree = flink.parse(sql);
|
||||
|
||||
test('Listener enterTableName', async () => {
|
||||
let result = '';
|
||||
class MyListener implements FlinkSqlParserListener {
|
||||
enterTableExpression = (ctx: TableExpressionContext): void => {
|
||||
result = ctx.getText().toLowerCase();
|
||||
};
|
||||
visitTerminal(node: TerminalNode): void {}
|
||||
visitErrorNode(node: ErrorNode): void {}
|
||||
enterEveryRule(node: ParserRuleContext): void {}
|
||||
exitEveryRule(node: ParserRuleContext): void {}
|
||||
}
|
||||
const listenTableName = new MyListener();
|
||||
class MyListener extends FlinkSqlParserListener {
|
||||
result = '';
|
||||
|
||||
await flink.listen(listenTableName, parseTree);
|
||||
expect(result).toBe(expectTableName);
|
||||
enterTableExpression = (ctx: TableExpressionContext): void => {
|
||||
this.result = ctx.getText().toLowerCase();
|
||||
};
|
||||
}
|
||||
const listener = new MyListener();
|
||||
|
||||
flink.listen(listener, parseTree);
|
||||
expect(listener.result).toBe(expectTableName);
|
||||
});
|
||||
|
||||
test('Split sql listener', async () => {
|
||||
|
@ -23,8 +23,6 @@ describe('Flink SQL Syntax Suggestion with collect entity', () => {
|
||||
};
|
||||
const sql = commentOtherLine(syntaxSql, pos.lineNumber);
|
||||
|
||||
const parseTree = flink.parse(sql);
|
||||
|
||||
const syntaxes = flink.getSuggestionAtCaretPosition(sql, pos)?.syntax;
|
||||
const suggestion = syntaxes?.find(
|
||||
(syn) => syn.syntaxContextType === EntityContextType.COLUMN
|
||||
|
@ -1,7 +1,6 @@
|
||||
import { FlinkSQL } from 'src/parser/flink';
|
||||
import { FlinkSqlParserVisitor } from 'src/lib/flink/FlinkSqlParserVisitor';
|
||||
import { AbstractParseTreeVisitor } from 'antlr4ng';
|
||||
import { TableExpressionContext } from 'src/lib/flink/FlinkSqlParser';
|
||||
import { ProgramContext, TableExpressionContext } from 'src/lib/flink/FlinkSqlParser';
|
||||
|
||||
describe('Flink SQL Visitor Tests', () => {
|
||||
const expectTableName = 'user1';
|
||||
@ -13,20 +12,22 @@ describe('Flink SQL Visitor Tests', () => {
|
||||
});
|
||||
|
||||
test('Visitor visitTableName', () => {
|
||||
let result = '';
|
||||
class MyVisitor
|
||||
extends AbstractParseTreeVisitor<any>
|
||||
implements FlinkSqlParserVisitor<any>
|
||||
{
|
||||
protected defaultResult() {
|
||||
return result;
|
||||
class MyVisitor extends FlinkSqlParserVisitor<string> {
|
||||
defaultResult(): string {
|
||||
return '';
|
||||
}
|
||||
visitTableExpression(ctx: TableExpressionContext) {
|
||||
result = ctx.getText().toLowerCase();
|
||||
aggregateResult(aggregate: string, nextResult: string): string {
|
||||
return aggregate + nextResult;
|
||||
}
|
||||
visitProgram = (ctx: ProgramContext) => {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
visitTableExpression = (ctx: TableExpressionContext) => {
|
||||
return ctx.getText().toLowerCase();
|
||||
};
|
||||
}
|
||||
const visitor: any = new MyVisitor();
|
||||
visitor.visit(parseTree);
|
||||
const visitor = new MyVisitor();
|
||||
const result = visitor.visit(parseTree);
|
||||
|
||||
expect(result).toBe(expectTableName);
|
||||
});
|
||||
|
Reference in New Issue
Block a user