test: hivesql alter syntax unit tests
This commit is contained in:
parent
f1ca0738d3
commit
6f7a59775c
@ -4,10 +4,38 @@ import { readSQL } from '../../../helper';
|
|||||||
const parser = new HiveSQL();
|
const parser = new HiveSQL();
|
||||||
|
|
||||||
const features = {
|
const features = {
|
||||||
|
databases: readSQL(__dirname, 'alterDatabase.sql'),
|
||||||
|
connectors: readSQL(__dirname, 'alterConnector.sql'),
|
||||||
|
tables: readSQL(__dirname, 'alterTable.sql'),
|
||||||
indexes: readSQL(__dirname, 'alterIndex.sql'),
|
indexes: readSQL(__dirname, 'alterIndex.sql'),
|
||||||
|
views: readSQL(__dirname, 'alterView.sql'),
|
||||||
};
|
};
|
||||||
|
|
||||||
describe('Hive Alter Syntax Tests', () => {
|
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', () => {
|
describe('ALTER INDEX', () => {
|
||||||
features.indexes.forEach((index) => {
|
features.indexes.forEach((index) => {
|
||||||
it(index, () => {
|
it(index, () => {
|
||||||
@ -15,4 +43,12 @@ describe('Hive Alter Syntax Tests', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('ALTER VIEW', () => {
|
||||||
|
features.views.forEach((view) => {
|
||||||
|
it(view, () => {
|
||||||
|
expect(parser.validate(view).length).toBe(0);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
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';
|
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;
|
Loading…
Reference in New Issue
Block a user