feat: deprecate legacy APIs (#304)
* feat: deprecation of legacy APIs * feat: deprecate plsql language
This commit is contained in:
@ -1,12 +0,0 @@
|
||||
import { PLSQL } from 'src/parser/plsql';
|
||||
|
||||
describe('PLSQL Lexer tests', () => {
|
||||
const plsql = new PLSQL();
|
||||
|
||||
const sql = 'select id,name,sex from user1;';
|
||||
const tokens = plsql.getAllTokens(sql);
|
||||
|
||||
test('token counts', () => {
|
||||
expect(tokens.length).toBe(12);
|
||||
});
|
||||
});
|
@ -1,24 +0,0 @@
|
||||
import { PLSQL } from 'src/parser/plsql';
|
||||
import { PlSqlParserListener } from 'src/lib/plsql/PlSqlParserListener';
|
||||
|
||||
describe('PLSQL Listener Tests', () => {
|
||||
const expectTableName = 'user1';
|
||||
const sql = `select id,name,sex from ${expectTableName};`;
|
||||
const plsql = new PLSQL();
|
||||
|
||||
const parseTree = plsql.parse(sql);
|
||||
|
||||
test('Listener enterTableName', async () => {
|
||||
class MyListener extends PlSqlParserListener {
|
||||
result = '';
|
||||
|
||||
enterTable_ref_list = (ctx) => {
|
||||
this.result = ctx.getText().toLowerCase();
|
||||
};
|
||||
}
|
||||
const listener = new MyListener();
|
||||
|
||||
plsql.listen(listener, parseTree);
|
||||
expect(listener.result).toBe(expectTableName);
|
||||
});
|
||||
});
|
@ -1,23 +0,0 @@
|
||||
import { PLSQL } from 'src/parser/plsql';
|
||||
|
||||
describe('PLSQL Syntax Tests', () => {
|
||||
const plsql = new PLSQL();
|
||||
|
||||
test('Test simple select Statement', () => {
|
||||
const sql = 'select id,name from user1;';
|
||||
const result = plsql.validate(sql);
|
||||
|
||||
expect(result.length).toBe(0);
|
||||
});
|
||||
|
||||
test(`Test select, where, order by`, () => {
|
||||
const sql = `
|
||||
select eid, emp_last, mgr_id, reportlevel
|
||||
from reports_to_101 r, auto a
|
||||
where r.c1 = a.c2
|
||||
order by reportlevel, eid
|
||||
`;
|
||||
const result = plsql.validate(sql);
|
||||
expect(result.length).toBe(0);
|
||||
});
|
||||
});
|
@ -1,31 +0,0 @@
|
||||
import { PLSQL } from 'src/parser/plsql';
|
||||
import { PlSqlParserVisitor } from 'src/lib/plsql/PlSqlParserVisitor';
|
||||
|
||||
describe('PLSQL Visitor Tests', () => {
|
||||
const expectTableName = 'user1';
|
||||
const sql = `select id,name,sex from ${expectTableName};`;
|
||||
const plsql = new PLSQL();
|
||||
|
||||
const parseTree = plsql.parse(sql);
|
||||
|
||||
test('Visitor visitTable_ref_list', () => {
|
||||
class MyVisitor extends PlSqlParserVisitor<string> {
|
||||
defaultResult(): string {
|
||||
return '';
|
||||
}
|
||||
aggregateResult(aggregate: string, nextResult: string): string {
|
||||
return aggregate + nextResult;
|
||||
}
|
||||
visitProgram = (ctx) => {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
visitTable_ref_list = (ctx) => {
|
||||
return ctx.getText().toLowerCase();
|
||||
};
|
||||
}
|
||||
const visitor = new MyVisitor();
|
||||
const result = visitor.visit(parseTree);
|
||||
|
||||
expect(result).toBe(expectTableName);
|
||||
});
|
||||
});
|
@ -1,89 +0,0 @@
|
||||
import { legacy_lexer, legacy_splitSql, legacy_cleanSql } from '../../src/utils';
|
||||
import { Legacy_TokenType } from '../../src/utils/token';
|
||||
|
||||
describe('utils', () => {
|
||||
test('split single sql', () => {
|
||||
const sql = 'select id,name from user';
|
||||
const result = legacy_splitSql(sql);
|
||||
expect(result.length).toEqual(1);
|
||||
});
|
||||
|
||||
test('split multiple sql', () => {
|
||||
const sql = `-- a ;
|
||||
select * from a;
|
||||
/*
|
||||
xxx
|
||||
xxx
|
||||
*/
|
||||
select user from b`;
|
||||
const result = legacy_splitSql(sql);
|
||||
expect(result.length).toEqual(2);
|
||||
});
|
||||
|
||||
test('split special quotation sql', () => {
|
||||
const sql = `select regexp_replace('a', 'bc', 'xfe'feefe', '233');
|
||||
select regexp_replace('abc', "fe", '233');`;
|
||||
const result = legacy_splitSql(sql);
|
||||
expect(result.length).toEqual(2);
|
||||
});
|
||||
|
||||
// test nested bracket
|
||||
test('split nested bracket sql', () => {
|
||||
const sql = `WITH cte_sales_amounts (staff, sales, year)
|
||||
AS
|
||||
(
|
||||
SELECT
|
||||
first_name + ' ' + last_name,
|
||||
SUM(quantity * list_price * (1 - discount)),
|
||||
YEAR(order_date)
|
||||
FROM
|
||||
sales.orders o
|
||||
INNER JOIN sales.order_items i ON i.order_id = o.order_id
|
||||
INNER JOIN sales.staffs s ON s.staff_id = o.staff_id
|
||||
)
|
||||
SELECT staff, sales
|
||||
FROM cte_sales_amounts
|
||||
WHERE year = 2018;
|
||||
SELECT * FROM table;`;
|
||||
const result = legacy_splitSql(sql);
|
||||
expect(result.length).toEqual(2);
|
||||
});
|
||||
|
||||
test('lexer', () => {
|
||||
const sql = `-- a ;
|
||||
select * from a;
|
||||
/*
|
||||
xxx
|
||||
xxx
|
||||
*/
|
||||
select user from b;`;
|
||||
const result = legacy_lexer(sql);
|
||||
expect(result.length).toEqual(4);
|
||||
});
|
||||
test('lexer for comments', () => {
|
||||
const sql = `select * from a;--comments`;
|
||||
const expected = `--comments`;
|
||||
const result = legacy_lexer(sql);
|
||||
const comments = result.find((token) => token.type === Legacy_TokenType.Comment);
|
||||
expect(comments?.value).toEqual(expected);
|
||||
});
|
||||
test('cleanSql', () => {
|
||||
const sql = `-- a ;
|
||||
select * from a;
|
||||
/*
|
||||
xxx
|
||||
xxx
|
||||
*/
|
||||
select user from b`;
|
||||
const result = legacy_cleanSql(sql);
|
||||
expect(result.indexOf('xxx')).toEqual(-1);
|
||||
});
|
||||
|
||||
test('clean SQL white spaces', () => {
|
||||
const sql = `
|
||||
select * from a; `;
|
||||
const expected = 'select * from a;';
|
||||
const result = legacy_cleanSql(sql);
|
||||
expect(result).toEqual(expected);
|
||||
});
|
||||
});
|
Reference in New Issue
Block a user