refactor: standard naming (#278)

* refactor: rename flinksql to flink

* refactor: rename pgsql to postgresql

* refactor: rename trinosql to trino

* refactor: replace all default exports with named export

* refactor: rename basicParser to basicSQL

* refactor: rename basic-parser-types to types

* refactor: replace arrow func with plain func
This commit is contained in:
Hayden
2024-03-27 10:33:25 +08:00
committed by GitHub
parent a99721162b
commit bb0fad1dbe
325 changed files with 33161 additions and 33202 deletions

View File

@ -1,4 +1,4 @@
import TrinoSQL from 'src/parser/trino';
import { TrinoSQL } from 'src/parser/trino';
import { readSQL } from 'test/helper';
const features = {
@ -9,25 +9,25 @@ const features = {
};
describe('TrinoSQL Alter Statements Syntax Tests', () => {
const parser = new TrinoSQL();
const trino = new TrinoSQL();
features.table.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
features.view.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
features.schema.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
features.materializedView.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
});

View File

@ -1,4 +1,4 @@
import TrinoSQL from 'src/parser/trino';
import { TrinoSQL } from 'src/parser/trino';
import { readSQL } from 'test/helper';
const features = {
@ -6,11 +6,11 @@ const features = {
};
describe('TrinoSQL Analyze Statements Syntax Tests', () => {
const parser = new TrinoSQL();
const trino = new TrinoSQL();
// analyze statements
features.analyze.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
});

View File

@ -1,4 +1,4 @@
import TrinoSQL from 'src/parser/trino';
import { TrinoSQL } from 'src/parser/trino';
import { readSQL } from 'test/helper';
const features = {
@ -6,11 +6,11 @@ const features = {
};
describe('TrinoSQL Call Statements Syntax Tests', () => {
const parser = new TrinoSQL();
const trino = new TrinoSQL();
// call statements
features.call.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
});

View File

@ -1,4 +1,4 @@
import TrinoSQL from 'src/parser/trino';
import { TrinoSQL } from 'src/parser/trino';
import { readSQL } from 'test/helper';
const features = {
@ -6,11 +6,11 @@ const features = {
};
describe('TrinoSQL Comment Statements Syntax Tests', () => {
const parser = new TrinoSQL();
const trino = new TrinoSQL();
// Comment statements
features.comment.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
});

View File

@ -1,4 +1,4 @@
import TrinoSQL from 'src/parser/trino';
import { TrinoSQL } from 'src/parser/trino';
import { readSQL } from 'test/helper';
const features = {
@ -6,11 +6,11 @@ const features = {
};
describe('TrinoSQL Commit Statements Syntax Tests', () => {
const parser = new TrinoSQL();
const trino = new TrinoSQL();
// commit statements
features.commit.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
});

View File

@ -1,4 +1,4 @@
import TrinoSQL from 'src/parser/trino';
import { TrinoSQL } from 'src/parser/trino';
import { readSQL } from 'test/helper';
const features = {
@ -11,36 +11,36 @@ const features = {
};
describe('TrinoSQL Create Statements Syntax Tests', () => {
const parser = new TrinoSQL();
const trino = new TrinoSQL();
features.table.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
features.view.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
features.schema.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
features.tableAsSelect.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
features.role.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
features.materializedView.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
});

View File

@ -1,4 +1,4 @@
import TrinoSQL from 'src/parser/trino';
import { TrinoSQL } from 'src/parser/trino';
import { readSQL } from 'test/helper';
const features = {
@ -6,11 +6,11 @@ const features = {
};
describe('TrinoSQL deallocatePrepare Statements Syntax Tests', () => {
const parser = new TrinoSQL();
const trino = new TrinoSQL();
// deallocate_prepare statements
features.deallocatePrepare.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
});

View File

@ -1,4 +1,4 @@
import TrinoSQL from 'src/parser/trino';
import { TrinoSQL } from 'src/parser/trino';
import { readSQL } from 'test/helper';
const features = {
@ -6,11 +6,11 @@ const features = {
};
describe('TrinoSQL Delete Statements Syntax Tests', () => {
const parser = new TrinoSQL();
const trino = new TrinoSQL();
// delete statements
features.delete.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
});

View File

@ -1,4 +1,4 @@
import TrinoSQL from 'src/parser/trino';
import { TrinoSQL } from 'src/parser/trino';
import { readSQL } from 'test/helper';
const features = {
@ -6,11 +6,11 @@ const features = {
};
describe('TrinoSQL Deny Statements Syntax Tests', () => {
const parser = new TrinoSQL();
const trino = new TrinoSQL();
// deny statements
features.deny.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
});

View File

@ -1,4 +1,4 @@
import TrinoSQL from 'src/parser/trino';
import { TrinoSQL } from 'src/parser/trino';
import { readSQL } from 'test/helper';
const features = {
@ -6,11 +6,11 @@ const features = {
};
describe('TrinoSQL Describe Statements Syntax Tests', () => {
const parser = new TrinoSQL();
const trino = new TrinoSQL();
// describe statements
features.describe.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
});

View File

@ -1,4 +1,4 @@
import TrinoSQL from 'src/parser/trino';
import { TrinoSQL } from 'src/parser/trino';
import { readSQL } from 'test/helper';
const features = {
@ -11,36 +11,36 @@ const features = {
};
describe('TrinoSQL Drop Statements Syntax Tests', () => {
const parser = new TrinoSQL();
const trino = new TrinoSQL();
features.table.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
features.view.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
features.schema.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
features.column.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
features.role.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
features.materializedView.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
});

View File

@ -1,4 +1,4 @@
import TrinoSQL from 'src/parser/trino';
import { TrinoSQL } from 'src/parser/trino';
import { readSQL } from 'test/helper';
const features = {
@ -6,11 +6,11 @@ const features = {
};
describe('TrinoSQL Execute Statements Syntax Tests', () => {
const parser = new TrinoSQL();
const trino = new TrinoSQL();
// execute statements
features.execute.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
});

View File

@ -1,4 +1,4 @@
import TrinoSQL from 'src/parser/trino';
import { TrinoSQL } from 'src/parser/trino';
import { readSQL } from 'test/helper';
const features = {
@ -6,11 +6,11 @@ const features = {
};
describe('TrinoSQL Explain Statements Syntax Tests', () => {
const parser = new TrinoSQL();
const trino = new TrinoSQL();
// explain statements
features.explain.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
});

View File

@ -1,4 +1,4 @@
import TrinoSQL from 'src/parser/trino';
import { TrinoSQL } from 'src/parser/trino';
import { readSQL } from 'test/helper';
const features = {
@ -6,11 +6,11 @@ const features = {
};
describe('TrinoSQL Grant Statements Syntax Tests', () => {
const parser = new TrinoSQL();
const trino = new TrinoSQL();
// grant statements
features.grant.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
});

View File

@ -1,4 +1,4 @@
import TrinoSQL from 'src/parser/trino';
import { TrinoSQL } from 'src/parser/trino';
import { readSQL } from 'test/helper';
const features = {
@ -6,10 +6,10 @@ const features = {
};
describe('TrinoSQL Insert Statements Syntax Tests', () => {
const parser = new TrinoSQL();
const trino = new TrinoSQL();
features.insertIntoTable.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
});

View File

@ -1,4 +1,4 @@
import TrinoSQL from 'src/parser/trino';
import { TrinoSQL } from 'src/parser/trino';
import { readSQL } from 'test/helper';
const features = {
@ -6,11 +6,11 @@ const features = {
};
describe('TrinoSQL Match Recognize Statements Syntax Tests', () => {
const parser = new TrinoSQL();
const trino = new TrinoSQL();
// match recognize statements
features.matchRecognize.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
});

View File

@ -1,4 +1,4 @@
import TrinoSQL from 'src/parser/trino';
import { TrinoSQL } from 'src/parser/trino';
import { readSQL } from 'test/helper';
const features = {
@ -6,11 +6,11 @@ const features = {
};
describe('TrinoSQL Merge Statements Syntax Tests', () => {
const parser = new TrinoSQL();
const trino = new TrinoSQL();
// merge statements
features.merge.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
});

View File

@ -1,4 +1,4 @@
import TrinoSQL from 'src/parser/trino';
import { TrinoSQL } from 'src/parser/trino';
import { readSQL } from 'test/helper';
const features = {
@ -6,11 +6,11 @@ const features = {
};
describe('TrinoSQL Prepare Statements Syntax Tests', () => {
const parser = new TrinoSQL();
const trino = new TrinoSQL();
// prepare statements
features.prepare.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
});

View File

@ -1,4 +1,4 @@
import TrinoSQL from 'src/parser/trino';
import { TrinoSQL } from 'src/parser/trino';
import { readSQL } from 'test/helper';
const features = {
@ -6,11 +6,11 @@ const features = {
};
describe('TrinoSQL Refresh Materialized View Statements Syntax Tests', () => {
const parser = new TrinoSQL();
const trino = new TrinoSQL();
// refresh materialized view statements
features.refreshMaterializedView.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
});

View File

@ -1,4 +1,4 @@
import TrinoSQL from 'src/parser/trino';
import { TrinoSQL } from 'src/parser/trino';
import { readSQL } from 'test/helper';
const features = {
@ -6,11 +6,11 @@ const features = {
};
describe('TrinoSQL Reset Session Statements Syntax Tests', () => {
const parser = new TrinoSQL();
const trino = new TrinoSQL();
// reset session statements
features.resetSession.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
});

View File

@ -1,4 +1,4 @@
import TrinoSQL from 'src/parser/trino';
import { TrinoSQL } from 'src/parser/trino';
import { readSQL } from 'test/helper';
const features = {
@ -7,16 +7,16 @@ const features = {
};
describe('TrinoSQL Revoke Statements Syntax Tests', () => {
const parser = new TrinoSQL();
const trino = new TrinoSQL();
// revoke statements
features.revoke.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
features.revokeRoles.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
});

View File

@ -1,4 +1,4 @@
import TrinoSQL from 'src/parser/trino';
import { TrinoSQL } from 'src/parser/trino';
import { readSQL } from 'test/helper';
const features = {
@ -6,11 +6,11 @@ const features = {
};
describe('TrinoSQL Rollback Transaction Statements Syntax Tests', () => {
const parser = new TrinoSQL();
const trino = new TrinoSQL();
// rollback transaction statements
features.rollbackTransaction.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
});

View File

@ -1,4 +1,4 @@
import TrinoSQL from 'src/parser/trino';
import { TrinoSQL } from 'src/parser/trino';
import { readSQL } from 'test/helper';
const features = {
@ -17,66 +17,66 @@ const features = {
};
describe('TrinoSQL Select Statements Syntax Tests', () => {
const parser = new TrinoSQL();
const trino = new TrinoSQL();
features.select.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
features.selectWithClause.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
features.selectWithSetOperations.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
features.selectWithSubQueries.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
features.selectWithTableSample.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
features.selectWithRowType.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
features.selectWithOffset.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
features.selectWithJoin.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
features.selectWithFetch.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
features.selectWithUNNEST.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
features.selectWithExists.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
features.selectWithUnion.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
});

View File

@ -1,4 +1,4 @@
import TrinoSQL from 'src/parser/trino';
import { TrinoSQL } from 'src/parser/trino';
import { readSQL } from 'test/helper';
const features = {
@ -9,26 +9,26 @@ const features = {
};
describe('TrinoSQL Set Statements Syntax Tests', () => {
const parser = new TrinoSQL();
const trino = new TrinoSQL();
// set statements
features.role.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
features.path.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
features.session.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
features.timeZone.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
});

View File

@ -1,4 +1,4 @@
import TrinoSQL from 'src/parser/trino';
import { TrinoSQL } from 'src/parser/trino';
import { readSQL } from 'test/helper';
const features = {
@ -17,61 +17,61 @@ const features = {
};
describe('TrinoSQL Show Statements Syntax Tests', () => {
const parser = new TrinoSQL();
const trino = new TrinoSQL();
// show statements
features.tables.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
features.catalogs.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
features.columns.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
features.functions.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
features.grants.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
features.roleGrants.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
features.roles.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
features.schemas.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
features.session.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
features.statsForQuery.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
features.stats.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
});

View File

@ -1,4 +1,4 @@
import TrinoSQL from 'src/parser/trino';
import { TrinoSQL } from 'src/parser/trino';
import { readSQL } from 'test/helper';
const features = {
@ -6,11 +6,11 @@ const features = {
};
describe('TrinoSQL Start Transaction Statements Syntax Tests', () => {
const parser = new TrinoSQL();
const trino = new TrinoSQL();
// start transaction statements
features.startTransaction.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
});

View File

@ -1,4 +1,4 @@
import TrinoSQL from 'src/parser/trino';
import { TrinoSQL } from 'src/parser/trino';
import { readSQL } from 'test/helper';
const features = {
@ -6,11 +6,11 @@ const features = {
};
describe('TrinoSQL Truncate Table Statements Syntax Tests', () => {
const parser = new TrinoSQL();
const trino = new TrinoSQL();
// truncate table statements
features.truncateTable.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
});

View File

@ -1,4 +1,4 @@
import TrinoSQL from 'src/parser/trino';
import { TrinoSQL } from 'src/parser/trino';
import { readSQL } from 'test/helper';
const features = {
@ -6,11 +6,11 @@ const features = {
};
describe('TrinoSQL Update Statements Syntax Tests', () => {
const parser = new TrinoSQL();
const trino = new TrinoSQL();
// update statements
features.update.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
});

View File

@ -1,4 +1,4 @@
import TrinoSQL from 'src/parser/trino';
import { TrinoSQL } from 'src/parser/trino';
import { readSQL } from 'test/helper';
const features = {
@ -6,11 +6,11 @@ const features = {
};
describe('TrinoSQL Use Statements Syntax Tests', () => {
const parser = new TrinoSQL();
const trino = new TrinoSQL();
// use statements
features.use.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
});

View File

@ -1,4 +1,4 @@
import TrinoSQL from 'src/parser/trino';
import { TrinoSQL } from 'src/parser/trino';
import { readSQL } from 'test/helper';
const features = {
@ -6,11 +6,11 @@ const features = {
};
describe('TrinoSQL Values Statements Syntax Tests', () => {
const parser = new TrinoSQL();
const trino = new TrinoSQL();
// values statements
features.values.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
});

View File

@ -1,4 +1,4 @@
import TrinoSQL from 'src/parser/trino';
import { TrinoSQL } from 'src/parser/trino';
import { readSQL } from 'test/helper';
const features = {
@ -6,11 +6,11 @@ const features = {
};
describe('TrinoSQL Window With Row Pattern Recognition Statements Syntax Tests', () => {
const parser = new TrinoSQL();
const trino = new TrinoSQL();
// window with row pattern recognition statements
features.windowWithRowPatternRecognition.forEach((sql) => {
it(sql, () => {
expect(parser.validate(sql).length).toBe(0);
expect(trino.validate(sql).length).toBe(0);
});
});
});