test(flink): add flink visitor and listener test
This commit is contained in:
parent
0ef80696f4
commit
8cfdd0e856
@ -1,6 +1,8 @@
|
|||||||
import SQLParser, { PlSqlParserListener } from '../../../src/parser/plsql';
|
import
|
||||||
// todo 校验关键字提取
|
SQLParser, { FlinkSqlParserListener }
|
||||||
describe('PLSQL Listener Tests', () => {
|
from '../../../src/parser/flinksql';
|
||||||
|
|
||||||
|
describe('Flink SQL Listener Tests', () => {
|
||||||
const expectTableName = 'user1';
|
const expectTableName = 'user1';
|
||||||
const sql = `select id,name,sex from ${expectTableName};`;
|
const sql = `select id,name,sex from ${expectTableName};`;
|
||||||
const parser = new SQLParser();
|
const parser = new SQLParser();
|
||||||
@ -9,8 +11,8 @@ describe('PLSQL Listener Tests', () => {
|
|||||||
|
|
||||||
test('Listener enterTableName', async () => {
|
test('Listener enterTableName', async () => {
|
||||||
let result = '';
|
let result = '';
|
||||||
class MyListener extends PlSqlParserListener {
|
class MyListener extends FlinkSqlParserListener {
|
||||||
enterTable_ref_list(ctx): void {
|
enterTableExpression(ctx): void {
|
||||||
result = ctx.getText().toLowerCase();
|
result = ctx.getText().toLowerCase();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
27
test/parser/flinksql/visitor.test.ts
Normal file
27
test/parser/flinksql/visitor.test.ts
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
import SQLParser, { FlinkSqlParserVisitor } from '../../../src/parser/flinksql';
|
||||||
|
|
||||||
|
describe('Flink SQL Visitor Tests', () => {
|
||||||
|
const expectTableName = 'user1';
|
||||||
|
const sql = `select id,name,sex from ${expectTableName};`;
|
||||||
|
const parser = new SQLParser();
|
||||||
|
|
||||||
|
const parserTree = parser.parse(sql, (error) => {
|
||||||
|
console.log('Parse error:', error);
|
||||||
|
});
|
||||||
|
|
||||||
|
// console.log('Parser tree string:', parser.toString(parserTree));
|
||||||
|
|
||||||
|
test('Visitor visitTableName', () => {
|
||||||
|
let result = '';
|
||||||
|
class MyVisitor extends FlinkSqlParserVisitor {
|
||||||
|
visitTableExpression(ctx): void {
|
||||||
|
result = ctx.getText().toLowerCase();
|
||||||
|
super.visitTableExpression(ctx);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const visitor: any = new MyVisitor();
|
||||||
|
visitor.visit(parserTree);
|
||||||
|
|
||||||
|
expect(result).toBe(expectTableName);
|
||||||
|
});
|
||||||
|
});
|
Loading…
Reference in New Issue
Block a user