mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2025-12-22 22:20:02 +00:00
feat(parser): ALTER TABLE ... REPARTITION ... (#7082)
* initial impl Signed-off-by: Ruihang Xia <waynestxia@gmail.com> * sqlness tests Signed-off-by: Ruihang Xia <waynestxia@gmail.com> * tidy up Signed-off-by: Ruihang Xia <waynestxia@gmail.com> --------- Signed-off-by: Ruihang Xia <waynestxia@gmail.com>
This commit is contained in:
48
tests/cases/standalone/common/alter/repartition.result
Normal file
48
tests/cases/standalone/common/alter/repartition.result
Normal file
@@ -0,0 +1,48 @@
|
||||
CREATE TABLE alter_repartition_table(
|
||||
device_id INT,
|
||||
area STRING,
|
||||
ty STRING,
|
||||
ts TIMESTAMP TIME INDEX,
|
||||
PRIMARY KEY(device_id)
|
||||
) PARTITION ON COLUMNS (device_id, area) (
|
||||
device_id < 100,
|
||||
device_id >= 100 AND device_id < 200,
|
||||
device_id >= 200
|
||||
);
|
||||
|
||||
Affected Rows: 0
|
||||
|
||||
-- valid grammar, currently not implemented
|
||||
ALTER TABLE alter_repartition_table REPARTITION (
|
||||
device_id < 100
|
||||
) INTO (
|
||||
device_id < 100 AND area < 'South',
|
||||
device_id < 100 AND area >= 'South'
|
||||
);
|
||||
|
||||
Error: 1001(Unsupported), Not supported: ALTER TABLE REPARTITION
|
||||
|
||||
-- invalid: empty source clause
|
||||
ALTER TABLE alter_repartition_table REPARTITION () INTO (
|
||||
device_id < 100
|
||||
);
|
||||
|
||||
Error: 2000(InvalidSyntax), Invalid SQL syntax: sql parser error: Expected expression inside REPARTITION clause, found: )
|
||||
|
||||
-- invalid: more than one INTO clause
|
||||
ALTER TABLE alter_repartition_table REPARTITION (
|
||||
device_id < 100
|
||||
) INTO (
|
||||
device_id < 50
|
||||
), (
|
||||
device_id >= 50
|
||||
) INTO (
|
||||
device_id >= 50
|
||||
);
|
||||
|
||||
Error: 2000(InvalidSyntax), Invalid SQL syntax: sql parser error: Expected end of REPARTITION clause, found: ,
|
||||
|
||||
DROP TABLE alter_repartition_table;
|
||||
|
||||
Affected Rows: 0
|
||||
|
||||
37
tests/cases/standalone/common/alter/repartition.sql
Normal file
37
tests/cases/standalone/common/alter/repartition.sql
Normal file
@@ -0,0 +1,37 @@
|
||||
CREATE TABLE alter_repartition_table(
|
||||
device_id INT,
|
||||
area STRING,
|
||||
ty STRING,
|
||||
ts TIMESTAMP TIME INDEX,
|
||||
PRIMARY KEY(device_id)
|
||||
) PARTITION ON COLUMNS (device_id, area) (
|
||||
device_id < 100,
|
||||
device_id >= 100 AND device_id < 200,
|
||||
device_id >= 200
|
||||
);
|
||||
|
||||
-- valid grammar, currently not implemented
|
||||
ALTER TABLE alter_repartition_table REPARTITION (
|
||||
device_id < 100
|
||||
) INTO (
|
||||
device_id < 100 AND area < 'South',
|
||||
device_id < 100 AND area >= 'South'
|
||||
);
|
||||
|
||||
-- invalid: empty source clause
|
||||
ALTER TABLE alter_repartition_table REPARTITION () INTO (
|
||||
device_id < 100
|
||||
);
|
||||
|
||||
-- invalid: more than one INTO clause
|
||||
ALTER TABLE alter_repartition_table REPARTITION (
|
||||
device_id < 100
|
||||
) INTO (
|
||||
device_id < 50
|
||||
), (
|
||||
device_id >= 50
|
||||
) INTO (
|
||||
device_id >= 50
|
||||
);
|
||||
|
||||
DROP TABLE alter_repartition_table;
|
||||
Reference in New Issue
Block a user