mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-05-14 20:10:37 +00:00
* feat: add ddl request timeouts and unify meta client startup Signed-off-by: WenyXu <wenymedia@gmail.com> * feat: omplement ALTER TABLE repartition DDL options parsing Signed-off-by: WenyXu <wenymedia@gmail.com> * test: add sqlness tests Signed-off-by: WenyXu <wenymedia@gmail.com> * test: add unit tests Signed-off-by: WenyXu <wenymedia@gmail.com> * feat: pass timeout argument to procedure Signed-off-by: WenyXu <wenymedia@gmail.com> * chore: apply suggestions Signed-off-by: WenyXu <wenymedia@gmail.com> * chore: refine comments Signed-off-by: WenyXu <wenymedia@gmail.com> * test: assert timeout Signed-off-by: WenyXu <wenymedia@gmail.com> * chore: apply suggestions Signed-off-by: WenyXu <wenymedia@gmail.com> * chore: update proto Signed-off-by: WenyXu <wenymedia@gmail.com> --------- Signed-off-by: WenyXu <wenymedia@gmail.com>
149 lines
3.1 KiB
SQL
149 lines
3.1 KiB
SQL
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
|
|
);
|
|
|
|
ALTER TABLE alter_repartition_table REPARTITION (
|
|
device_id < 100
|
|
) INTO (
|
|
device_id < 100 AND area < 'South',
|
|
device_id < 100 AND area >= 'South'
|
|
);
|
|
|
|
SHOW CREATE TABLE alter_repartition_table;
|
|
|
|
ALTER TABLE alter_repartition_table MERGE PARTITION (
|
|
device_id < 100 AND area < 'South',
|
|
device_id < 100 AND area >= 'South'
|
|
);
|
|
|
|
SHOW CREATE TABLE alter_repartition_table;
|
|
|
|
-- FIXME(weny): Object store is not configured for the test environment,
|
|
-- so staging manifest may not be applied in some cases.
|
|
|
|
-- 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;
|
|
|
|
CREATE TABLE alter_repartition_table_with_options(
|
|
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
|
|
);
|
|
|
|
-- SQLNESS REPLACE ([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}) PROC_ID
|
|
ALTER TABLE alter_repartition_table_with_options REPARTITION (
|
|
device_id < 100
|
|
) INTO (
|
|
device_id < 100 AND area < 'South',
|
|
device_id < 100 AND area >= 'South'
|
|
) WITH (
|
|
TIMEOUT = '5m',
|
|
WAIT = false
|
|
);
|
|
|
|
DROP TABLE alter_repartition_table_with_options;
|
|
|
|
-- Metric engine repartition test
|
|
CREATE TABLE metric_physical_table (
|
|
ts TIMESTAMP TIME INDEX,
|
|
host STRING,
|
|
cpu DOUBLE,
|
|
PRIMARY KEY(host)
|
|
)
|
|
PARTITION ON COLUMNS (host) (
|
|
host < 'h1',
|
|
host >= 'h1' AND host < 'h2',
|
|
host >= 'h2'
|
|
)
|
|
ENGINE = metric
|
|
WITH (
|
|
physical_metric_table = "true"
|
|
);
|
|
|
|
CREATE TABLE logical_table_v1 (
|
|
ts TIMESTAMP TIME INDEX,
|
|
host STRING PRIMARY KEY,
|
|
cpu DOUBLE,
|
|
)
|
|
ENGINE = metric
|
|
WITH (
|
|
on_physical_table = "metric_physical_table"
|
|
);
|
|
|
|
CREATE TABLE logical_table_v2 (
|
|
ts TIMESTAMP TIME INDEX,
|
|
host STRING PRIMARY KEY,
|
|
cpu DOUBLE,
|
|
)
|
|
ENGINE = metric
|
|
WITH (
|
|
on_physical_table = "metric_physical_table"
|
|
);
|
|
|
|
-- Split physical table partition
|
|
ALTER TABLE metric_physical_table SPLIT PARTITION (
|
|
host < 'h1'
|
|
) INTO (
|
|
host < 'h0',
|
|
host >= 'h0' AND host < 'h1'
|
|
);
|
|
|
|
SHOW CREATE TABLE metric_physical_table;
|
|
|
|
-- Verify select * works and returns empty
|
|
SELECT * FROM metric_physical_table;
|
|
|
|
SELECT * FROM logical_table_v1;
|
|
|
|
SELECT * FROM logical_table_v2;
|
|
|
|
-- Merge physical table partition
|
|
ALTER TABLE metric_physical_table MERGE PARTITION (
|
|
host < 'h0',
|
|
host >= 'h0' AND host < 'h1'
|
|
);
|
|
|
|
SHOW CREATE TABLE metric_physical_table;
|
|
|
|
-- Verify select * works and returns empty
|
|
SELECT * FROM metric_physical_table;
|
|
|
|
SELECT * FROM logical_table_v1;
|
|
|
|
SELECT * FROM logical_table_v2;
|
|
|
|
DROP TABLE logical_table_v1;
|
|
|
|
DROP TABLE logical_table_v2;
|
|
|
|
DROP TABLE metric_physical_table;
|