feat: support spark sql auto complete (#179)
* refactor: spark sql g4 * feat: support spark sql suggestion * test: spark sql suggestion unit test * test: hive spell check * feat: spark sql keyword has multiple values * test: KW_NOT KW_RLIKE split into two value --------- Co-authored-by: liuyi <liuyi@dtstack.com>
This commit is contained in:
6
test/parser/spark/syntax/fixtures/kwMultipleValues.sql
Normal file
6
test/parser/spark/syntax/fixtures/kwMultipleValues.sql
Normal file
@ -0,0 +1,6 @@
|
||||
SELECT * FROM table_name WHERE NOT (age > 30);
|
||||
SELECT * FROM table_name WHERE ! (age > 30);
|
||||
|
||||
|
||||
SELECT * FROM table_name WHERE name RLIKE 'M+';
|
||||
SELECT * FROM table_name WHERE name REGEXP 'M+';
|
23
test/parser/spark/syntax/kwMultipleValues.test.ts
Normal file
23
test/parser/spark/syntax/kwMultipleValues.test.ts
Normal file
@ -0,0 +1,23 @@
|
||||
import SparkSQL from '../../../../src/parser/spark';
|
||||
import { readSQL } from '../../../helper';
|
||||
|
||||
const parser = new SparkSQL();
|
||||
|
||||
/**
|
||||
* 关键词有多个值
|
||||
* KW_NOT: 'NOT' | '!'
|
||||
* KW_RLIKE: 'RLIKE' | 'REGEXP';
|
||||
*/
|
||||
const features = {
|
||||
kwMultipleValues: readSQL(__dirname, 'kwMultipleValues.sql'),
|
||||
};
|
||||
|
||||
describe('SparkSQL Insert Syntax Tests', () => {
|
||||
Object.keys(features).forEach((key) => {
|
||||
features[key].forEach((sql) => {
|
||||
it(sql, () => {
|
||||
expect(parser.validate(sql).length).toBe(0);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
Reference in New Issue
Block a user