feat: upgrade antlr4 to 4.12.0 (#88)
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
import { FlinkSQL } from '../../../src';
|
||||
import FlinkSQL from '../../../src/parser/flinksql';
|
||||
|
||||
describe('FlinkSQL Lexer tests', () => {
|
||||
const parser = new FlinkSQL();
|
||||
@ -7,6 +7,6 @@ describe('FlinkSQL Lexer tests', () => {
|
||||
const tokens = parser.getAllTokens(sql);
|
||||
|
||||
test('token counts', () => {
|
||||
expect(tokens.length).toBe(7);
|
||||
expect(tokens.length - 1).toBe(7);
|
||||
});
|
||||
});
|
||||
|
@ -1,4 +1,6 @@
|
||||
import { FlinkSQL, FlinkSqlParserListener } from '../../../src';
|
||||
import FlinkSQL from '../../../src/parser/flinksql';
|
||||
import FlinkSqlParserListener from '../../../src/lib/flinksql/FlinkSqlParserListener';
|
||||
import { TableExpressionContext } from '../../../src/lib/flinksql/FlinkSqlParser';
|
||||
|
||||
describe('Flink SQL Listener Tests', () => {
|
||||
const expectTableName = 'user1';
|
||||
@ -10,11 +12,16 @@ describe('Flink SQL Listener Tests', () => {
|
||||
test('Listener enterTableName', async () => {
|
||||
let result = '';
|
||||
class MyListener extends FlinkSqlParserListener {
|
||||
enterTableExpression(ctx): void {
|
||||
|
||||
constructor() {
|
||||
super()
|
||||
}
|
||||
|
||||
enterTableExpression = (ctx: TableExpressionContext): void => {
|
||||
result = ctx.getText().toLowerCase();
|
||||
}
|
||||
}
|
||||
const listenTableName: any = new MyListener();
|
||||
const listenTableName = new MyListener();
|
||||
|
||||
await parser.listen(listenTableName, parserTree);
|
||||
expect(result).toBe(expectTableName);
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { FlinkSQL } from '../../../src';
|
||||
import FlinkSQL from '../../../src/parser/flinksql';
|
||||
|
||||
describe('FlinkSQL Syntax Tests', () => {
|
||||
const parser = new FlinkSQL();
|
||||
@ -22,6 +22,11 @@ describe('FlinkSQL Syntax Tests', () => {
|
||||
const result = parser.validate(sql);
|
||||
expect(result.length).toBe(0);
|
||||
});
|
||||
test('Test simple Error Select Statement', () => {
|
||||
const sql = `SELECTproduct, amount FROM;`;
|
||||
const result = parser.validate(sql);
|
||||
expect(result.length).toBe(1);
|
||||
});
|
||||
test('Test Select Statement with where clause', () => {
|
||||
const sql = `SELECT * FROM person WHERE id = 200 OR id = 300;`;
|
||||
const result = parser.validate(sql);
|
||||
@ -217,7 +222,6 @@ describe('FlinkSQL Syntax Tests', () => {
|
||||
test('Test valid Double Line Comment statement', () => {
|
||||
const sql = `----test comment\n`;
|
||||
const result = parser.validate(sql);
|
||||
console.log('res:', result);
|
||||
expect(result.length).toBe(0);
|
||||
});
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { FlinkSQL } from '../../../../src';
|
||||
import FlinkSQL from "../../../../src/parser/flinksql";
|
||||
|
||||
describe('FlinkSQL Create Table Syntax Tests', () => {
|
||||
const parser = new FlinkSQL();
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { FlinkSQL } from '../../../../src';
|
||||
import FlinkSQL from "../../../../src/parser/flinksql";
|
||||
|
||||
describe('FlinkSQL Create Table Syntax Tests', () => {
|
||||
const parser = new FlinkSQL();
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { FlinkSQL } from '../../../../src';
|
||||
import FlinkSQL from '../../../../src/parser/flinksql';
|
||||
|
||||
describe('FlinkSQL Create Table Syntax Tests', () => {
|
||||
const parser = new FlinkSQL();
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { FlinkSQL } from '../../../../src';
|
||||
import FlinkSQL from "../../../../src/parser/flinksql";
|
||||
|
||||
describe('FlinkSQL Create Table Syntax Tests', () => {
|
||||
const parser = new FlinkSQL();
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { FlinkSQL } from '../../../../src';
|
||||
import FlinkSQL from "../../../../src/parser/flinksql";
|
||||
|
||||
describe('FlinkSQL Create Table Syntax Tests', () => {
|
||||
const parser = new FlinkSQL();
|
||||
|
@ -1,4 +1,5 @@
|
||||
import { FlinkSQL, FlinkSqlParserVisitor } from '../../../src';
|
||||
import FlinkSQL from '../../../src/parser/flinksql';
|
||||
import FlinkSqlParserVisitor from '../../../src/lib/flinksql/FlinkSqlParserVisitor';
|
||||
|
||||
describe('Flink SQL Visitor Tests', () => {
|
||||
const expectTableName = 'user1';
|
||||
@ -9,14 +10,11 @@ describe('Flink SQL Visitor Tests', () => {
|
||||
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 {
|
||||
class MyVisitor extends FlinkSqlParserVisitor<any>{
|
||||
visitTableExpression = (ctx): void => {
|
||||
result = ctx.getText().toLowerCase();
|
||||
super.visitTableExpression(ctx);
|
||||
}
|
||||
}
|
||||
const visitor: any = new MyVisitor();
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { GenericSQL } from '../../../src/';
|
||||
import GenericSQL from '../../../src/parser/generic';
|
||||
|
||||
describe('GenericSQL Lexer tests', () => {
|
||||
const mysqlParser = new GenericSQL();
|
||||
@ -7,6 +7,6 @@ describe('GenericSQL Lexer tests', () => {
|
||||
const tokens = mysqlParser.getAllTokens(sql);
|
||||
|
||||
test('token counts', () => {
|
||||
expect(tokens.length).toBe(12);
|
||||
expect(tokens.length - 1).toBe(12);
|
||||
});
|
||||
});
|
||||
|
@ -1,4 +1,5 @@
|
||||
import { GenericSQL, SqlParserListener } from '../../../src';
|
||||
import GenericSQL from '../../../src/parser/generic';
|
||||
import SqlParserListener from '../../../src/lib/generic/SqlParserListener';
|
||||
|
||||
describe('Generic SQL Listener Tests', () => {
|
||||
const expectTableName = 'user1';
|
||||
@ -10,7 +11,7 @@ describe('Generic SQL Listener Tests', () => {
|
||||
test('Listener enterTableName', async () => {
|
||||
let result = '';
|
||||
class MyListener extends SqlParserListener {
|
||||
enterTableName(ctx): void {
|
||||
enterTableName = (ctx): void => {
|
||||
result = ctx.getText().toLowerCase();
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { GenericSQL } from '../../../src';
|
||||
import GenericSQL from '../../../src/parser/generic';
|
||||
|
||||
describe('Generic SQL Syntax Tests', () => {
|
||||
const parser = new GenericSQL();
|
||||
|
@ -1,4 +1,5 @@
|
||||
import { GenericSQL, SqlParserVisitor } from '../../../src';
|
||||
import GenericSQL from '../../../src/parser/generic';
|
||||
import SqlParserVisitor from '../../../src/lib/generic/SqlParserVisitor';
|
||||
|
||||
describe('Generic SQL Visitor Tests', () => {
|
||||
const expectTableName = 'user1';
|
||||
@ -9,17 +10,19 @@ describe('Generic SQL Visitor Tests', () => {
|
||||
console.log('Parse error:', error);
|
||||
});
|
||||
|
||||
console.log('Parser tree string:', parser.toString(parserTree));
|
||||
|
||||
test('Visitor visitTableName', () => {
|
||||
let result = '';
|
||||
class MyVisitor extends SqlParserVisitor {
|
||||
visitTableName(ctx): void {
|
||||
class MyVisitor extends SqlParserVisitor<any> {
|
||||
constructor() {
|
||||
super();
|
||||
}
|
||||
|
||||
visitTableName = (ctx): void => {
|
||||
result = ctx.getText().toLowerCase();
|
||||
super.visitTableName(ctx);
|
||||
super.visitTableName?.(ctx);
|
||||
}
|
||||
}
|
||||
const visitor: any = new MyVisitor();
|
||||
const visitor = new MyVisitor();
|
||||
visitor.visit(parserTree);
|
||||
|
||||
expect(result).toBe(expectTableName);
|
||||
|
@ -1,16 +1,16 @@
|
||||
import { HiveSQL } from '../../../src';
|
||||
import HiveSQL from '../../../src/parser/hive';
|
||||
|
||||
describe('HiveSQL Lexer tests', () => {
|
||||
const parser = new HiveSQL();
|
||||
test('select token counts', () => {
|
||||
const sql = 'SELECT * FROM t1';
|
||||
const tokens = parser.getAllTokens(sql);
|
||||
expect(tokens.length).toBe(4);
|
||||
expect(tokens.length - 1).toBe(4);
|
||||
});
|
||||
|
||||
test('select token counts', () => {
|
||||
const sql = 'show create table_name;';
|
||||
const tokens = parser.getAllTokens(sql);
|
||||
expect(tokens.length).toBe(4);
|
||||
expect(tokens.length - 1).toBe(4);
|
||||
});
|
||||
});
|
||||
|
@ -1,4 +1,6 @@
|
||||
import { HiveSQL, HiveSqlListener } from '../../../src';
|
||||
import HiveSqlListener from '../../../src/lib/hive/HiveSqlListener';
|
||||
import HiveSQL from '../../../src/parser/hive';
|
||||
|
||||
|
||||
describe('Hive SQL Listener Tests', () => {
|
||||
const parser = new HiveSQL();
|
||||
@ -9,7 +11,7 @@ describe('Hive SQL Listener Tests', () => {
|
||||
|
||||
let result = '';
|
||||
class MyListener extends HiveSqlListener {
|
||||
enterSelect_list(ctx): void {
|
||||
enterSelect_list = (ctx): void => {
|
||||
result = ctx.getText();
|
||||
}
|
||||
}
|
||||
@ -23,7 +25,7 @@ describe('Hive SQL Listener Tests', () => {
|
||||
const parserTree = parser.parse(sql);
|
||||
let result = '';
|
||||
class MyListener extends HiveSqlListener {
|
||||
enterDrop_stmt(ctx): void {
|
||||
enterDrop_stmt = (ctx): void => {
|
||||
result = ctx.getText();
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { HiveSQL } from '../../../src';
|
||||
import HiveSQL from '../../../src/parser/hive';
|
||||
|
||||
describe('Hive SQL Syntax Tests', () => {
|
||||
const parser = new HiveSQL();
|
||||
|
@ -1,4 +1,5 @@
|
||||
import { HiveSQL, HiveSqlVisitor } from '../../../src';
|
||||
import HiveSqlVisitor from '../../../src/lib/hive/HiveSqlVisitor';
|
||||
import HiveSQL from '../../../src/parser/hive';
|
||||
|
||||
describe('Generic SQL Visitor Tests', () => {
|
||||
const expectTableName = 'dm_gis.dlv_addr_tc_count';
|
||||
@ -9,18 +10,16 @@ describe('Generic SQL Visitor Tests', () => {
|
||||
console.log('Parse error:', error);
|
||||
});
|
||||
|
||||
// console.log('Parser tree string:', parser.toString(parserTree));
|
||||
|
||||
test('Visitor visitTableName', () => {
|
||||
let result = '';
|
||||
class MyVisitor extends HiveSqlVisitor {
|
||||
visitTable_name(ctx): void {
|
||||
class MyVisitor extends HiveSqlVisitor<any> {
|
||||
visitTable_name = (ctx): void => {
|
||||
result = ctx.getText().toLowerCase();
|
||||
super.visitTable_name(ctx);
|
||||
super.visitTable_name?.(ctx);
|
||||
}
|
||||
}
|
||||
|
||||
const visitor: any = new MyVisitor();
|
||||
const visitor = new MyVisitor();
|
||||
visitor.visit(parserTree);
|
||||
|
||||
expect(result).toBe(expectTableName);
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { PostgresSQL } from '../../../src/';
|
||||
import PostgresSQL from '../../../src/parser/pgsql';
|
||||
|
||||
describe('PostgresSQL Lexer tests', () => {
|
||||
const mysqlParser = new PostgresSQL();
|
||||
@ -7,6 +7,6 @@ describe('PostgresSQL Lexer tests', () => {
|
||||
const tokens = mysqlParser.getAllTokens(sql);
|
||||
|
||||
test('token counts', () => {
|
||||
expect(tokens.length).toBe(12);
|
||||
expect(tokens.length - 1).toBe(12);
|
||||
});
|
||||
});
|
||||
|
@ -1,4 +1,5 @@
|
||||
import { PostgresSQL, PostgreSQLParserListener } from '../../../src';
|
||||
import PostgreSQLParserListener from '../../../src/lib/pgsql/PostgreSQLParserListener';
|
||||
import PostgresSQL from '../../../src/parser/pgsql';
|
||||
|
||||
describe('PostgresSQL Listener Tests', () => {
|
||||
const expectTableName = 'user1';
|
||||
@ -7,13 +8,11 @@ describe('PostgresSQL Listener Tests', () => {
|
||||
|
||||
const parserTree = parser.parse(sql);
|
||||
|
||||
console.log('Parser tree string:', parserTree);
|
||||
|
||||
test('Listener enterTableName', async () => {
|
||||
let result = '';
|
||||
class MyListener extends PostgreSQLParserListener {
|
||||
// eslint-disable-next-line camelcase
|
||||
enterTable_ref(ctx): void {
|
||||
enterTable_ref = (ctx): void => {
|
||||
result = ctx.getText().toLowerCase();
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { PostgresSQL } from '../../../src';
|
||||
import PostgresSQL from "../../../src/parser/pgsql";
|
||||
|
||||
describe('Generic SQL Syntax Tests', () => {
|
||||
const parser = new PostgresSQL();
|
||||
|
@ -1,4 +1,5 @@
|
||||
import { PostgresSQL, PostgreSQLParserVisitor } from '../../../src';
|
||||
import PostgreSQLParserVisitor from "../../../src/lib/pgsql/PostgreSQLParserVisitor";
|
||||
import PostgresSQL from "../../../src/parser/pgsql";
|
||||
|
||||
describe('Generic SQL Visitor Tests', () => {
|
||||
const expectTableName = 'user1';
|
||||
@ -11,11 +12,11 @@ describe('Generic SQL Visitor Tests', () => {
|
||||
|
||||
test('Visitor visitTableName', () => {
|
||||
let result = '';
|
||||
class MyVisitor extends PostgreSQLParserVisitor {
|
||||
class MyVisitor extends PostgreSQLParserVisitor<any> {
|
||||
// eslint-disable-next-line camelcase
|
||||
visitTable_ref(ctx): void {
|
||||
visitTable_ref = (ctx): void => {
|
||||
result = ctx.getText().toLowerCase();
|
||||
super.visitTable_ref(ctx);
|
||||
super.visitTable_ref?.(ctx);
|
||||
}
|
||||
}
|
||||
const visitor: any = new MyVisitor();
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { PLSQL } from '../../../src';
|
||||
import PLSQL from '../../../src/parser/plsql';
|
||||
|
||||
describe('PLSQL Lexer tests', () => {
|
||||
const parser = new PLSQL();
|
||||
@ -7,6 +7,6 @@ describe('PLSQL Lexer tests', () => {
|
||||
const tokens = parser.getAllTokens(sql);
|
||||
|
||||
test('token counts', () => {
|
||||
expect(tokens.length).toBe(12);
|
||||
expect(tokens.length - 1).toBe(12);
|
||||
});
|
||||
});
|
||||
|
@ -1,4 +1,5 @@
|
||||
import { PLSQL, PlSqlParserListener } from '../../../src';
|
||||
import PlSqlParserListener from '../../../src/lib/plsql/PlSqlParserListener';
|
||||
import PLSQL from '../../../src/parser/plsql';
|
||||
|
||||
describe('PLSQL Listener Tests', () => {
|
||||
const expectTableName = 'user1';
|
||||
@ -11,7 +12,7 @@ describe('PLSQL Listener Tests', () => {
|
||||
let result = '';
|
||||
class MyListener extends PlSqlParserListener {
|
||||
// eslint-disable-next-line camelcase
|
||||
enterTable_ref_list(ctx): void {
|
||||
enterTable_ref_list = (ctx): void => {
|
||||
result = ctx.getText().toLowerCase();
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { PLSQL } from '../../../src';
|
||||
import PLSQLParser from '../../../src/parser/plsql';
|
||||
|
||||
describe('PLSQL Syntax Tests', () => {
|
||||
const parser = new PLSQL();
|
||||
const parser = new PLSQLParser();
|
||||
|
||||
test('Test simple select Statement', () => {
|
||||
const sql = 'select id,name from user1;';
|
||||
|
@ -1,4 +1,5 @@
|
||||
import { PLSQL, PlSqlParserVisitor } from '../../../src';
|
||||
import PlSqlParserVisitor from '../../../src/lib/plsql/PlSqlParserVisitor';
|
||||
import PLSQL from '../../../src/parser/plsql';
|
||||
|
||||
describe('PLSQL Visitor Tests', () => {
|
||||
const expectTableName = 'user1';
|
||||
@ -9,11 +10,11 @@ describe('PLSQL Visitor Tests', () => {
|
||||
|
||||
test('Visitor visitTable_ref_list', () => {
|
||||
let result = '';
|
||||
class MyVisitor extends PlSqlParserVisitor {
|
||||
class MyVisitor extends PlSqlParserVisitor<any> {
|
||||
// eslint-disable-next-line camelcase
|
||||
visitTable_ref_list(ctx): void {
|
||||
visitTable_ref_list = (ctx): void => {
|
||||
result = ctx.getText().toLowerCase();
|
||||
super.visitTable_ref_list(ctx);
|
||||
super.visitTable_ref_list?.(ctx);
|
||||
}
|
||||
}
|
||||
const visitor: any = new MyVisitor();
|
||||
|
@ -1,6 +1,4 @@
|
||||
import { SparkSQL } from '../../../src';
|
||||
|
||||
const log = console.log.bind(console);
|
||||
import SparkSQL from '../../../src/parser/spark';
|
||||
|
||||
describe('SparkSQL Lexer tests', () => {
|
||||
const parser = new SparkSQL();
|
||||
@ -8,14 +6,12 @@ describe('SparkSQL Lexer tests', () => {
|
||||
test('select id,name from user1;', () => {
|
||||
const sql = `select id,name from user1;`;
|
||||
const tokens = parser.getAllTokens(sql);
|
||||
const length = tokens.length;
|
||||
log('tokens length', length);
|
||||
expect(tokens.length).toBe(10);
|
||||
expect(tokens.length - 1).toBe(10);
|
||||
});
|
||||
|
||||
test('SELECT * FROM t WHERE x = 1 AND y = 2;', () => {
|
||||
const sql = `SELECT * FROM t WHERE x = 1 AND y = 2;`;
|
||||
const tokens = parser.getAllTokens(sql);
|
||||
expect(tokens.length).toBe(24);
|
||||
expect(tokens.length - 1).toBe(24);
|
||||
});
|
||||
});
|
||||
|
@ -1,4 +1,5 @@
|
||||
import { SparkSQL, SparkSqlListener } from '../../../src';
|
||||
import SparkSqlListener from '../../../src/lib/spark/SparkSqlListener';
|
||||
import SparkSQL from '../../../src/parser/spark';
|
||||
|
||||
describe('Spark SQL Listener Tests', () => {
|
||||
const expectTableName = 'user1';
|
||||
@ -10,7 +11,7 @@ describe('Spark SQL Listener Tests', () => {
|
||||
test('Listener enterTableName', () => {
|
||||
let result = '';
|
||||
class MyListener extends SparkSqlListener {
|
||||
enterTableName(ctx): void {
|
||||
enterTableName = (ctx): void => {
|
||||
result = ctx.getText().toLowerCase();
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { SparkSQL } from '../../../src';
|
||||
import SparkSQL from '../../../src/parser/spark';
|
||||
|
||||
const error = console.log.bind(console, '***** error\n');
|
||||
|
||||
|
@ -1,4 +1,5 @@
|
||||
import { SparkSQL, SparkSqlVisitor } from '../../../src';
|
||||
import SparkSqlVisitor from '../../../src/lib/spark/SparkSqlVisitor';
|
||||
import SparkSQL from '../../../src/parser/spark';
|
||||
|
||||
describe('Spark SQL Visitor Tests', () => {
|
||||
const expectTableName = 'user1';
|
||||
@ -9,14 +10,12 @@ describe('Spark SQL Visitor Tests', () => {
|
||||
console.log('Parse error:', error);
|
||||
});
|
||||
|
||||
console.log('Parser tree string:', parser.toString(parserTree));
|
||||
|
||||
test('Visitor visitTableName', () => {
|
||||
let result = '';
|
||||
class MyVisitor extends SparkSqlVisitor {
|
||||
visitTableName(ctx): void {
|
||||
class MyVisitor extends SparkSqlVisitor<any> {
|
||||
visitTableName = (ctx): void => {
|
||||
result = ctx.getText().toLowerCase();
|
||||
super.visitTableName(ctx);
|
||||
super.visitTableName?.(ctx);
|
||||
}
|
||||
}
|
||||
const visitor: any = new MyVisitor();
|
||||
|
Reference in New Issue
Block a user