Merge pull request #129 from HaydenOrz/test/hivesql_unit_tests
Test/hivesql unit tests
This commit is contained in:
commit
f1b9b80056
16
test/parser/hive/syntax/abortStatement.test.ts
Normal file
16
test/parser/hive/syntax/abortStatement.test.ts
Normal file
@ -0,0 +1,16 @@
|
||||
import HiveSQL from '../../../../src/parser/hive';
|
||||
import { readSQL } from '../../../helper';
|
||||
|
||||
const parser = new HiveSQL();
|
||||
|
||||
const features = {
|
||||
aborts: readSQL(__dirname, 'abort.sql'),
|
||||
};
|
||||
|
||||
describe('Hive Abort Syntax Tests', () => {
|
||||
features.aborts.forEach((ab) => {
|
||||
it(ab, () => {
|
||||
expect(parser.validate(ab).length).toBe(0);
|
||||
});
|
||||
});
|
||||
});
|
@ -4,10 +4,39 @@ import { readSQL } from '../../../helper';
|
||||
const parser = new HiveSQL();
|
||||
|
||||
const features = {
|
||||
databases: readSQL(__dirname, 'alterDatabase.sql'),
|
||||
connectors: readSQL(__dirname, 'alterConnector.sql'),
|
||||
tables: readSQL(__dirname, 'alterTable.sql'),
|
||||
indexes: readSQL(__dirname, 'alterIndex.sql'),
|
||||
views: readSQL(__dirname, 'alterView.sql'),
|
||||
scheduleQueries: readSQL(__dirname, 'alterScheduleQuery.sql'),
|
||||
};
|
||||
|
||||
describe('Hive Alter Syntax Tests', () => {
|
||||
describe('ALTER DATABASE', () => {
|
||||
features.databases.forEach((db) => {
|
||||
it(db, () => {
|
||||
expect(parser.validate(db).length).toBe(0);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('ALTER CONNECTOR', () => {
|
||||
features.connectors.forEach((ctors) => {
|
||||
it(ctors, () => {
|
||||
expect(parser.validate(ctors).length).toBe(0);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('ALTER TABLE', () => {
|
||||
features.tables.forEach((tb) => {
|
||||
it(tb, () => {
|
||||
expect(parser.validate(tb).length).toBe(0);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('ALTER INDEX', () => {
|
||||
features.indexes.forEach((index) => {
|
||||
it(index, () => {
|
||||
@ -15,4 +44,20 @@ describe('Hive Alter Syntax Tests', () => {
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('ALTER VIEW', () => {
|
||||
features.views.forEach((view) => {
|
||||
it(view, () => {
|
||||
expect(parser.validate(view).length).toBe(0);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('ALTER SCHEDULE QUERY', () => {
|
||||
features.scheduleQueries.forEach((sq) => {
|
||||
it(sq, () => {
|
||||
expect(parser.validate(sq).length).toBe(0);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
16
test/parser/hive/syntax/describeStatement.test.ts
Normal file
16
test/parser/hive/syntax/describeStatement.test.ts
Normal file
@ -0,0 +1,16 @@
|
||||
import HiveSQL from '../../../../src/parser/hive';
|
||||
import { readSQL } from '../../../helper';
|
||||
|
||||
const parser = new HiveSQL();
|
||||
|
||||
const features = {
|
||||
desc: readSQL(__dirname, 'describe.sql'),
|
||||
};
|
||||
|
||||
describe('Hive Describe Syntax Tests', () => {
|
||||
features.desc.forEach((des) => {
|
||||
it(des, () => {
|
||||
expect(parser.validate(des).length).toBe(0);
|
||||
});
|
||||
});
|
||||
});
|
@ -4,15 +4,20 @@ import { readSQL } from '../../../helper';
|
||||
const parser = new HiveSQL();
|
||||
|
||||
const features = {
|
||||
indexes: readSQL(__dirname, 'dropIndex.sql'),
|
||||
drops: readSQL(__dirname, 'drop.sql'),
|
||||
reloads: readSQL(__dirname, 'reload.sql')
|
||||
};
|
||||
|
||||
describe('Hive Drop Syntax Tests', () => {
|
||||
describe('DROP INDEX', () => {
|
||||
features.indexes.forEach((index) => {
|
||||
it(index, () => {
|
||||
expect(parser.validate(index).length).toBe(0);
|
||||
features.drops.forEach((drop) => {
|
||||
it(drop, () => {
|
||||
expect(parser.validate(drop).length).toBe(0);
|
||||
});
|
||||
});
|
||||
|
||||
features.reloads.forEach((reload) => {
|
||||
it(reload, () => {
|
||||
expect(parser.validate(reload).length).toBe(0);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
1
test/parser/hive/syntax/fixtures/abort.sql
Normal file
1
test/parser/hive/syntax/fixtures/abort.sql
Normal file
@ -0,0 +1 @@
|
||||
ABORT TRANSACTIONS 0000007 0000008 0000010 0000015;
|
7
test/parser/hive/syntax/fixtures/alterConnector.sql
Normal file
7
test/parser/hive/syntax/fixtures/alterConnector.sql
Normal file
@ -0,0 +1,7 @@
|
||||
ALTER CONNECTOR mysql_local SET DCPROPERTIES ('creator'='hayden','date'='2023-07-07');
|
||||
|
||||
ALTER CONNECTOR pg_local SET URL 'jdbc:postgresql://localhost:5400';
|
||||
|
||||
ALTER CONNECTOR hbase_local SET OWNER USER `hayden`;
|
||||
|
||||
ALTER CONNECTOR hbase_local SET OWNER ROLE `admin`;
|
19
test/parser/hive/syntax/fixtures/alterDatabase.sql
Normal file
19
test/parser/hive/syntax/fixtures/alterDatabase.sql
Normal file
@ -0,0 +1,19 @@
|
||||
ALTER DATABASE mydb1 SET DBPROPERTIES ('creator'='hayden','date'='2023-07-07');
|
||||
|
||||
ALTER SCHEMA myschema1 SET DBPROPERTIES ('creator'='hayden','date'='2023-07-07');
|
||||
|
||||
ALTER DATABASE database_name SET OWNER USER hayden;
|
||||
|
||||
ALTER SCHEMA database_name SET OWNER ROLE `admin`;
|
||||
|
||||
ALTER DATABASE database_name SET OWNER USER jack;
|
||||
|
||||
ALTER SCHEMA database_name SET OWNER ROLE ddladmin;
|
||||
|
||||
ALTER DATABASE database_name SET LOCATION '/myhive/mydb';
|
||||
|
||||
ALTER SCHEMA database_name SET LOCATION '/myhive/myschema';
|
||||
|
||||
ALTER DATABASE database_name SET MANAGEDLOCATION '/myhive/myinnerdb';
|
||||
|
||||
ALTER SCHEMA database_name SET MANAGEDLOCATION '/myhive/myinnerschema';
|
7
test/parser/hive/syntax/fixtures/alterScheduleQuery.sql
Normal file
7
test/parser/hive/syntax/fixtures/alterScheduleQuery.sql
Normal file
@ -0,0 +1,7 @@
|
||||
ALTER SCHEDULED QUERY sq_1 EVERY HOUR AT '0:07:30';
|
||||
|
||||
ALTER SCHEDULED QUERY sq_2 EXECUTED AS 'user2';
|
||||
|
||||
ALTER SCHEDULED QUERY sq_3 DISABLED;
|
||||
|
||||
ALTER SCHEDULED QUERY sq_4 AS SELECT * FROM tbl1;
|
123
test/parser/hive/syntax/fixtures/alterTable.sql
Normal file
123
test/parser/hive/syntax/fixtures/alterTable.sql
Normal file
@ -0,0 +1,123 @@
|
||||
-- Rename Table
|
||||
ALTER TABLE tbl1 RENAME TO tbl2;
|
||||
|
||||
-- Alter Table Properties
|
||||
ALTER TABLE mydb.tb22 SET TBLPROPERTIES ('creator'='hayden');
|
||||
|
||||
-- Alter Table Comment
|
||||
ALTER TABLE mydb.tb22 SET TBLPROPERTIES ('comment' = 'This is a new comment!');
|
||||
|
||||
-- Add SerDe Properties
|
||||
ALTER TABLE employee_tb SET SERDE 'com.dt.test';
|
||||
|
||||
ALTER TABLE employee_tb
|
||||
SET SERDE 'com.dt.test'
|
||||
WITH SERDEPROPERTIES ('field.delim' = ',');
|
||||
|
||||
ALTER TABLE sale_rbl
|
||||
PARTITION (
|
||||
`pt1`='1'
|
||||
)
|
||||
SET SERDEPROPERTIES ('field.delim' = ',');
|
||||
|
||||
-- Remove SerDe Properties
|
||||
ALTER TABLE sale_rbl UNSET SERDEPROPERTIES ('field.delim');
|
||||
|
||||
-- Alter Table Storage Properties
|
||||
ALTER TABLE students
|
||||
CLUSTERED BY (id, `name`, age)
|
||||
SORTED BY (age)
|
||||
INTO 2 BUCKETS;
|
||||
|
||||
-- Alter Table Skewed or Stored as Directories
|
||||
ALTER TABLE dt_shop
|
||||
SKEWED BY (id, cost)
|
||||
ON (('id',1), ('cost', 1000));
|
||||
|
||||
ALTER TABLE dt_shop
|
||||
SKEWED BY (id, cost)
|
||||
ON (('id',1), ('cost', 1000))
|
||||
STORED AS DIRECTORIES;
|
||||
|
||||
-- Alter Table Not Skewed
|
||||
ALTER TABLE dt_shop NOT SKEWED;
|
||||
|
||||
-- Alter Table Not Stored as Directories
|
||||
ALTER TABLE dt_shop NOT STORED AS DIRECTORIES;
|
||||
|
||||
-- Alter Table Set Skewed Location
|
||||
ALTER TABLE dt_shop SET SKEWED LOCATION ('id'='location1', "cost"="loaction2" );
|
||||
|
||||
-- Alter Table Constraints
|
||||
ALTER TABLE tbl1
|
||||
ADD CONSTRAINT const1
|
||||
PRIMARY KEY (id)
|
||||
DISABLE NOVALIDATE;
|
||||
|
||||
ALTER TABLE tbl2
|
||||
ADD CONSTRAINT const2
|
||||
FOREIGN KEY (id, `name`)
|
||||
REFERENCES refer_tb(rid, rname)
|
||||
DISABLE NOVALIDATE RELY;
|
||||
|
||||
ALTER TABLE tbl3
|
||||
ADD CONSTRAINT const3
|
||||
UNIQUE (`name`, `age`)
|
||||
DISABLE NOVALIDATE;
|
||||
|
||||
ALTER TABLE tbl4
|
||||
CHANGE COLUMN `col1` `col2` STRING CONSTRAINT const4
|
||||
NOT NULL ENABLE;
|
||||
|
||||
ALTER TABLE tbl5
|
||||
CHANGE COLUMN `col3` `col4` INT CONSTRAINT const5
|
||||
DEFAULT 998 ENABLE;
|
||||
|
||||
ALTER TABLE tbl6
|
||||
CHANGE COLUMN col5 col6 MAP<STRING, STRING> CONSTRAINT const6
|
||||
CHECK (1) ENABLE;
|
||||
|
||||
ALTER TABLE tbl7 DROP CONSTRAINT remove_const;
|
||||
|
||||
-- Alter Partition
|
||||
ALTER TABLE add_par_tbl
|
||||
ADD IF NOT EXISTS
|
||||
PARTITION (`pt1` = 1) LOCATION '/pat/loc'
|
||||
PARTITION (`pt2` = 2, `pt3`=3) LOCATION '/pat/loc'
|
||||
|
||||
-- Rename Partition
|
||||
ALTER TABLE ren_par_tbl
|
||||
PARTITION (`pt1`=1)
|
||||
RENAME TO PARTITION (`pt2`=2) ;
|
||||
|
||||
-- Exchange Partition
|
||||
ALTER TABLE ex_part_tbl2
|
||||
EXCHANGE PARTITION (`pt1`=1)
|
||||
WITH TABLE ex_part_tbl1;
|
||||
|
||||
-- Recover Partitions
|
||||
MSCK TABLE rec_tbl;
|
||||
|
||||
MSCK REPAIR TABLE rec_tbl SYNC PARTITIONS;
|
||||
|
||||
-- Drop Partitions
|
||||
ALTER TABLE dr_tbl1 DROP PARTITION (`pt1`=1);
|
||||
|
||||
ALTER TABLE dr_tbl2 DROP IF EXISTS PARTITION (`pt2`=2) PURGE;
|
||||
|
||||
-- ALTER TABLE dr_tbl2 DROP IF EXISTS PARTITION (`pt2`=2) IGNORE PROTECTION PURGE;
|
||||
|
||||
-- Archive Partition
|
||||
ALTER TABLE arch_pt_tbl1 ARCHIVE PARTITION (`pt1`=1);
|
||||
|
||||
ALTER TABLE arch_pt_tbl2 UNARCHIVE PARTITION (`pt2`=2) ;
|
||||
|
||||
-- Add/Replace Columns
|
||||
ALTER TABLE rp_col_tbl1 ADD COLUMNS (`col1` INT);
|
||||
|
||||
ALTER TABLE rp_col_tbl2 REPLACE COLUMNS (`col2` INT);
|
||||
|
||||
ALTER TABLE rp_col_tbl2
|
||||
PARTITION (`pt1`=1)
|
||||
ADD COLUMNS (`col3` INT COMMENT 'a new col')
|
||||
CASCADE;
|
9
test/parser/hive/syntax/fixtures/alterView.sql
Normal file
9
test/parser/hive/syntax/fixtures/alterView.sql
Normal file
@ -0,0 +1,9 @@
|
||||
ALTER VIEW mydb.view1 SET TBLPROPERTIES ('author'='hayden','date'='2023-07-07')
|
||||
|
||||
ALTER VIEW view2
|
||||
AS SELECT DISTINCT id, `name`, runtime
|
||||
FROM task_tbl
|
||||
WHERE type='hour';
|
||||
|
||||
ALTER MATERIALIZED VIEW myschema1.materialized_view_1
|
||||
ENABLE REWRITE;
|
@ -9,12 +9,12 @@ AS ANALYZE TABLE t
|
||||
|
||||
CREATE SCHEDULED QUERY s_day
|
||||
EVERY 2 DAY OFFSET BY 'offsetTs'
|
||||
EXECUTED AS 'SELECT * FROM aa'
|
||||
EXECUTED AS 'admin'
|
||||
ENABLE
|
||||
DEFINED AS INSERT INTO t VALUES (1);
|
||||
|
||||
CREATE SCHEDULED QUERY s_hour
|
||||
EVERY HOUR AT '0:07:30'
|
||||
EXECUTED AS 'SELECT * FROM aa'
|
||||
EXECUTED AS 'query_user_1'
|
||||
DISABLE
|
||||
DEFINED AS INSERT INTO t VALUES (1);
|
||||
|
3
test/parser/hive/syntax/fixtures/describe.sql
Normal file
3
test/parser/hive/syntax/fixtures/describe.sql
Normal file
@ -0,0 +1,3 @@
|
||||
DESCRIBE FORMATTED default.src_table PARTITION (part_col = 100) columnA;
|
||||
|
||||
DESCRIBE default.src_thrift lintString.$elem$.myint;
|
44
test/parser/hive/syntax/fixtures/drop.sql
Normal file
44
test/parser/hive/syntax/fixtures/drop.sql
Normal file
@ -0,0 +1,44 @@
|
||||
-- Drop Database
|
||||
DROP SCHEMA schema1 ;
|
||||
|
||||
DROP DATABASE IF EXISTS mydb1 RESTRICT;
|
||||
|
||||
DROP DATABASE IF EXISTS mydb1 CASCADE;
|
||||
|
||||
-- Drop Connector
|
||||
DROP CONNECTOR connector1;
|
||||
|
||||
DROP CONNECTOR IF EXISTS connector1;
|
||||
|
||||
-- Drop View
|
||||
DROP VIEW view1;
|
||||
|
||||
DROP VIEW IF EXISTS mydb1.view2;
|
||||
|
||||
DROP MATERIALIZED VIEW materialized_view_name;
|
||||
|
||||
-- Drop Table
|
||||
DROP TABLE tb1;
|
||||
|
||||
DROP TABLE IF EXISTS db1.tb2 PURGE;
|
||||
|
||||
-- Drop Macro
|
||||
DROP TEMPORARY MACRO macro1;
|
||||
|
||||
DROP TEMPORARY MACRO IF EXISTS macro2;
|
||||
|
||||
-- Drop Role
|
||||
DROP ROLE `admin`;
|
||||
|
||||
-- Drop Index
|
||||
DROP INDEX table01_index ON table01;
|
||||
|
||||
DROP INDEX IF EXISTS table02_index ON table02;
|
||||
|
||||
-- Drop Function
|
||||
DROP FUNCTION func1;
|
||||
|
||||
DROP FUNCTION IF EXISTS func2;
|
||||
|
||||
-- Drop Schedule Query
|
||||
DROP SCHEDULED QUERY sq_1;
|
@ -1,3 +0,0 @@
|
||||
DROP INDEX table01_index ON table01;
|
||||
|
||||
DROP INDEX IF EXISTS table02_index ON table02;
|
3
test/parser/hive/syntax/fixtures/reload.sql
Normal file
3
test/parser/hive/syntax/fixtures/reload.sql
Normal file
@ -0,0 +1,3 @@
|
||||
RELOAD FUNCTION;
|
||||
|
||||
RELOAD FUNCTIONS;
|
107
test/parser/hive/syntax/fixtures/show.sql
Normal file
107
test/parser/hive/syntax/fixtures/show.sql
Normal file
@ -0,0 +1,107 @@
|
||||
-- Show Databases
|
||||
SHOW SCHEMAS;
|
||||
|
||||
SHOW DATABASES LIKE 'identifier_with_wildcards';
|
||||
|
||||
-- Show Connectors
|
||||
SHOW CONNECTORS;
|
||||
|
||||
-- Show Tables
|
||||
SHOW TABLES;
|
||||
|
||||
SHOW TABLES IN db1 'identifier_with_wildcards';
|
||||
|
||||
-- Show Views
|
||||
SHOW VIEWS;
|
||||
|
||||
SHOW VIEWS FROM schema1 LIKE 'pattern_with_wildcards';
|
||||
|
||||
SHOW MATERIALIZED VIEWS IN database2 LIKE 'pattern_with_wildcards';
|
||||
|
||||
-- Show Partitions
|
||||
SHOW PARTITIONS tbl1;
|
||||
|
||||
SHOW PARTITIONS table_name PARTITION(ds='2010-03-03', hr='12');
|
||||
|
||||
SHOW PARTITIONS databaseFoo.tableBar WHERE hr >= 10 AND ds='2010-03-03' ORDER BY hr DESC LIMIT 10;
|
||||
|
||||
-- Show Table/Partition Extended
|
||||
SHOW TABLE EXTENDED LIKE part_table;
|
||||
|
||||
SHOW TABLE EXTENDED IN database3 LIKE 'identifier_with_wildcards' PARTITION(ds='2010-03-03', hr='12');
|
||||
|
||||
-- Show Table Properties
|
||||
SHOW TBLPROPERTIES tblname;
|
||||
|
||||
SHOW TBLPROPERTIES tblname("foo");
|
||||
|
||||
-- Show Create Table
|
||||
SHOW CREATE TABLE db.tbl1;
|
||||
|
||||
-- Show Indexes
|
||||
-- SHOW INDEX ON idx_tbl;
|
||||
|
||||
-- SHOW FORMATTED INDEXES ON idx_tbl2 FROM db_1;
|
||||
|
||||
-- Show Columns
|
||||
SHOW COLUMNS FROM tble;
|
||||
|
||||
SHOW COLUMNS IN table_name FROM db_1 LIKE 'pattern_with_wildcards';
|
||||
|
||||
-- Show Functions
|
||||
SHOW FUNCTIONS;
|
||||
|
||||
SHOW FUNCTIONS LIKE "<pattern>";
|
||||
|
||||
-- Show Locks
|
||||
SHOW LOCKS tbl1;
|
||||
|
||||
SHOW LOCKS tbl2 EXTENDED;
|
||||
|
||||
SHOW LOCKS tbl3 PARTITION (ds='2010-03-03', hr='12');
|
||||
|
||||
SHOW LOCKS tbl4 PARTITION (ds='2010-03-03', hr='12') EXTENDED;
|
||||
|
||||
SHOW LOCKS DATABASE db1;
|
||||
|
||||
-- Show Conf
|
||||
SHOW CONF 'conf1';
|
||||
|
||||
-- Show Transactions
|
||||
SHOW TRANSACTIONS;
|
||||
|
||||
-- Show Compactions
|
||||
SHOW COMPACTIONS;
|
||||
|
||||
SHOW COMPACTIONS DATABASE db1;
|
||||
|
||||
SHOW COMPACTIONS tbl0;
|
||||
|
||||
SHOW COMPACTIONS db1.tbl0
|
||||
PARTITION (p=101,day='Monday')
|
||||
POOL 'pool0'
|
||||
TYPE 'minor'
|
||||
STATUS 'ready for clean'
|
||||
ORDER BY cq_table DESC, cq_state
|
||||
LIMIT 42;
|
||||
|
||||
-- Show Roles
|
||||
SHOW ROLES;
|
||||
|
||||
SHOW CURRENT ROLES;
|
||||
|
||||
-- Show Role Grant
|
||||
SHOW ROLE GRANT USER user1;
|
||||
|
||||
-- Show Principals
|
||||
SHOW PRINCIPALS role1;
|
||||
|
||||
-- Show Grant
|
||||
SHOW GRANT USER ashutosh ON TABLE hivejiratable;
|
||||
|
||||
SHOW GRANT ROLE role1 ON ALL;
|
||||
|
||||
SHOW GRANT ON TABLE hivejiratable;
|
||||
|
||||
|
||||
|
16
test/parser/hive/syntax/showStatement.test.ts
Normal file
16
test/parser/hive/syntax/showStatement.test.ts
Normal file
@ -0,0 +1,16 @@
|
||||
import HiveSQL from '../../../../src/parser/hive';
|
||||
import { readSQL } from '../../../helper';
|
||||
|
||||
const parser = new HiveSQL();
|
||||
|
||||
const features = {
|
||||
shows: readSQL(__dirname, 'show.sql'),
|
||||
};
|
||||
|
||||
describe('Hive Show Syntax Tests', () => {
|
||||
features.shows.forEach((show) => {
|
||||
it(show, () => {
|
||||
expect(parser.validate(show).length).toBe(0);
|
||||
});
|
||||
});
|
||||
});
|
Loading…
Reference in New Issue
Block a user