e203f1a48a
* feat(impala): add impala sqlLexer * feat(impala): add impala grammar * feat(impala): add alter table sql * feat(impala): update alter table sql * feat(impala): add alter db sql * feat(impala): add alter view sql * feat(impala): add compute stats/comment statement and update partition_desc for alter table * feat(impala): add drop statement sql * feat(impala): add revoke and grant sql * feat(impala): add create db/function/role/view sql * feat(impala): add describe/explain/invalidata_metadata/load_data sql * feat(impala): add refresh/set/shutdown sql * feat(impala): add truncate_table/use/values sql * fix(impala): update shutdown and invaliddate_metadata * feat(impala): add show/update/upsert sql * feat(impala): add create/insert sql * feat(impala): add select and delete sql * feat(impala): add impala tokens and fix todo * feat(impala): update impalaparser and some test unit * feat(impala): add syntax suggestion * feat(impala): add syntax suggestion * feat(impala): update test unit * feat(impala): remove reference * fix(impala): add statement for sqlname and collect tableName * fix(impala): fix syntax suggestion unit test * fix(impala): update syntax suggestion and collect column * feat(impala): add collect column create
115 lines
3.5 KiB
TypeScript
115 lines
3.5 KiB
TypeScript
import ImpalaSQL from '../../../../src/parser/impala';
|
|
import { readSQL } from '../../../helper';
|
|
|
|
const parser = new ImpalaSQL();
|
|
|
|
const features = {
|
|
computeStats: readSQL(__dirname, 'compute_stats.sql'),
|
|
comments: readSQL(__dirname, 'comment.sql'),
|
|
grants: readSQL(__dirname, 'grant.sql'),
|
|
revokes: readSQL(__dirname, 'revoke.sql'),
|
|
loadData: readSQL(__dirname, 'load_data.sql'),
|
|
describes: readSQL(__dirname, 'describe.sql'),
|
|
explains: readSQL(__dirname, 'explain.sql'),
|
|
invalidates: readSQL(__dirname, 'invalidate_metadata.sql'),
|
|
set: readSQL(__dirname, 'set.sql'),
|
|
shutdown: readSQL(__dirname, 'shutdown.sql'),
|
|
truncate: readSQL(__dirname, 'truncate_table.sql'),
|
|
use: readSQL(__dirname, 'use.sql'),
|
|
values: readSQL(__dirname, 'values.sql'),
|
|
};
|
|
|
|
describe('ImpalaSQL Other Syntax Tests', () => {
|
|
describe('COMPUTE STATS', () => {
|
|
features.computeStats.forEach((db) => {
|
|
it(db, () => {
|
|
expect(parser.validate(db).length).toBe(0);
|
|
});
|
|
});
|
|
});
|
|
describe('COMMENT STATEMENT', () => {
|
|
features.comments.forEach((db) => {
|
|
it(db, () => {
|
|
expect(parser.validate(db).length).toBe(0);
|
|
});
|
|
});
|
|
});
|
|
describe('GRANT STATEMENT', () => {
|
|
features.grants.forEach((db) => {
|
|
it(db, () => {
|
|
expect(parser.validate(db).length).toBe(0);
|
|
});
|
|
});
|
|
});
|
|
describe('REVOKE STATEMENT', () => {
|
|
features.revokes.forEach((db) => {
|
|
it(db, () => {
|
|
expect(parser.validate(db).length).toBe(0);
|
|
});
|
|
});
|
|
});
|
|
describe('LOAD DATA STATEMENT', () => {
|
|
features.loadData.forEach((db) => {
|
|
it(db, () => {
|
|
expect(parser.validate(db).length).toBe(0);
|
|
});
|
|
});
|
|
});
|
|
describe('DESCRIBE STATEMENT', () => {
|
|
features.describes.forEach((db) => {
|
|
it(db, () => {
|
|
expect(parser.validate(db).length).toBe(0);
|
|
});
|
|
});
|
|
});
|
|
describe('EXPLAIN STATEMENT', () => {
|
|
features.explains.forEach((db) => {
|
|
it(db, () => {
|
|
expect(parser.validate(db).length).toBe(0);
|
|
});
|
|
});
|
|
});
|
|
describe('INVALIDATE METADATA STATEMENT', () => {
|
|
features.invalidates.forEach((db) => {
|
|
it(db, () => {
|
|
expect(parser.validate(db).length).toBe(0);
|
|
});
|
|
});
|
|
});
|
|
describe('SET STATEMENT', () => {
|
|
features.set.forEach((db) => {
|
|
it(db, () => {
|
|
expect(parser.validate(db).length).toBe(0);
|
|
});
|
|
});
|
|
});
|
|
describe('SHUTDOWN STATEMENT', () => {
|
|
features.shutdown.forEach((db) => {
|
|
it(db, () => {
|
|
expect(parser.validate(db).length).toBe(0);
|
|
});
|
|
});
|
|
});
|
|
describe('TRUNCATE TABLE STATEMENT', () => {
|
|
features.truncate.forEach((db) => {
|
|
it(db, () => {
|
|
expect(parser.validate(db).length).toBe(0);
|
|
});
|
|
});
|
|
});
|
|
describe('USE STATEMENT', () => {
|
|
features.use.forEach((db) => {
|
|
it(db, () => {
|
|
expect(parser.validate(db).length).toBe(0);
|
|
});
|
|
});
|
|
});
|
|
describe('VALUES STATEMENT', () => {
|
|
features.values.forEach((db) => {
|
|
it(db, () => {
|
|
expect(parser.validate(db).length).toBe(0);
|
|
});
|
|
});
|
|
});
|
|
});
|