mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-01-04 12:22:55 +00:00
fix: set column index can't work in physical table (#6179)
This commit is contained in:
@@ -206,7 +206,9 @@ impl DataRegion {
|
||||
) -> Result<AffectedRows> {
|
||||
match request.kind {
|
||||
AlterKind::SetRegionOptions { options: _ }
|
||||
| AlterKind::UnsetRegionOptions { keys: _ } => {
|
||||
| AlterKind::UnsetRegionOptions { keys: _ }
|
||||
| AlterKind::SetIndex { options: _ }
|
||||
| AlterKind::UnsetIndex { options: _ } => {
|
||||
let region_id = utils::to_data_region_id(region_id);
|
||||
self.mito
|
||||
.handle_request(region_id, RegionRequest::Alter(request))
|
||||
|
||||
109
tests/cases/standalone/common/alter/alter_physical_table.result
Normal file
109
tests/cases/standalone/common/alter/alter_physical_table.result
Normal file
@@ -0,0 +1,109 @@
|
||||
CREATE TABLE phy (ts timestamp time index, val double, a_label STRING, PRIMARY KEY(a_label)) engine=metric with ("physical_metric_table" = "");
|
||||
|
||||
Affected Rows: 0
|
||||
|
||||
ALTER TABLE phy ADD COLUMN b_label STRING PRIMARY KEY;
|
||||
|
||||
Error: 1001(Unsupported), Alter request to physical region is forbidden
|
||||
|
||||
ALTER TABLE phy DROP COLUMN a_label;
|
||||
|
||||
Error: 1004(InvalidArguments), Not allowed to remove index column a_label from table phy
|
||||
|
||||
ALTER TABLE phy SET 'ttl'='1d';
|
||||
|
||||
Affected Rows: 0
|
||||
|
||||
SHOW CREATE TABLE phy;
|
||||
|
||||
+-------+------------------------------------+
|
||||
| Table | Create Table |
|
||||
+-------+------------------------------------+
|
||||
| phy | CREATE TABLE IF NOT EXISTS "phy" ( |
|
||||
| | "ts" TIMESTAMP(3) NOT NULL, |
|
||||
| | "val" DOUBLE NULL, |
|
||||
| | "a_label" STRING NULL, |
|
||||
| | TIME INDEX ("ts"), |
|
||||
| | PRIMARY KEY ("a_label") |
|
||||
| | ) |
|
||||
| | |
|
||||
| | ENGINE=metric |
|
||||
| | WITH( |
|
||||
| | physical_metric_table = '', |
|
||||
| | ttl = '1day' |
|
||||
| | ) |
|
||||
+-------+------------------------------------+
|
||||
|
||||
ALTER TABLE phy UNSET 'ttl';
|
||||
|
||||
Affected Rows: 0
|
||||
|
||||
SHOW CREATE TABLE phy;
|
||||
|
||||
+-------+------------------------------------+
|
||||
| Table | Create Table |
|
||||
+-------+------------------------------------+
|
||||
| phy | CREATE TABLE IF NOT EXISTS "phy" ( |
|
||||
| | "ts" TIMESTAMP(3) NOT NULL, |
|
||||
| | "val" DOUBLE NULL, |
|
||||
| | "a_label" STRING NULL, |
|
||||
| | TIME INDEX ("ts"), |
|
||||
| | PRIMARY KEY ("a_label") |
|
||||
| | ) |
|
||||
| | |
|
||||
| | ENGINE=metric |
|
||||
| | WITH( |
|
||||
| | physical_metric_table = '' |
|
||||
| | ) |
|
||||
+-------+------------------------------------+
|
||||
|
||||
ALTER TABLE phy MODIFY COLUMN a_label SET INVERTED INDEX;
|
||||
|
||||
Affected Rows: 0
|
||||
|
||||
SHOW CREATE TABLE phy;
|
||||
|
||||
+-------+-----------------------------------------+
|
||||
| Table | Create Table |
|
||||
+-------+-----------------------------------------+
|
||||
| phy | CREATE TABLE IF NOT EXISTS "phy" ( |
|
||||
| | "ts" TIMESTAMP(3) NOT NULL, |
|
||||
| | "val" DOUBLE NULL, |
|
||||
| | "a_label" STRING NULL INVERTED INDEX, |
|
||||
| | TIME INDEX ("ts"), |
|
||||
| | PRIMARY KEY ("a_label") |
|
||||
| | ) |
|
||||
| | |
|
||||
| | ENGINE=metric |
|
||||
| | WITH( |
|
||||
| | physical_metric_table = '' |
|
||||
| | ) |
|
||||
+-------+-----------------------------------------+
|
||||
|
||||
ALTER TABLE phy MODIFY COLUMN a_label UNSET INVERTED INDEX;
|
||||
|
||||
Affected Rows: 0
|
||||
|
||||
SHOW CREATE TABLE phy;
|
||||
|
||||
+-------+------------------------------------+
|
||||
| Table | Create Table |
|
||||
+-------+------------------------------------+
|
||||
| phy | CREATE TABLE IF NOT EXISTS "phy" ( |
|
||||
| | "ts" TIMESTAMP(3) NOT NULL, |
|
||||
| | "val" DOUBLE NULL, |
|
||||
| | "a_label" STRING NULL, |
|
||||
| | TIME INDEX ("ts"), |
|
||||
| | PRIMARY KEY ("a_label") |
|
||||
| | ) |
|
||||
| | |
|
||||
| | ENGINE=metric |
|
||||
| | WITH( |
|
||||
| | physical_metric_table = '' |
|
||||
| | ) |
|
||||
+-------+------------------------------------+
|
||||
|
||||
DROP TABLE phy;
|
||||
|
||||
Affected Rows: 0
|
||||
|
||||
23
tests/cases/standalone/common/alter/alter_physical_table.sql
Normal file
23
tests/cases/standalone/common/alter/alter_physical_table.sql
Normal file
@@ -0,0 +1,23 @@
|
||||
CREATE TABLE phy (ts timestamp time index, val double, a_label STRING, PRIMARY KEY(a_label)) engine=metric with ("physical_metric_table" = "");
|
||||
|
||||
ALTER TABLE phy ADD COLUMN b_label STRING PRIMARY KEY;
|
||||
|
||||
ALTER TABLE phy DROP COLUMN a_label;
|
||||
|
||||
ALTER TABLE phy SET 'ttl'='1d';
|
||||
|
||||
SHOW CREATE TABLE phy;
|
||||
|
||||
ALTER TABLE phy UNSET 'ttl';
|
||||
|
||||
SHOW CREATE TABLE phy;
|
||||
|
||||
ALTER TABLE phy MODIFY COLUMN a_label SET INVERTED INDEX;
|
||||
|
||||
SHOW CREATE TABLE phy;
|
||||
|
||||
ALTER TABLE phy MODIFY COLUMN a_label UNSET INVERTED INDEX;
|
||||
|
||||
SHOW CREATE TABLE phy;
|
||||
|
||||
DROP TABLE phy;
|
||||
Reference in New Issue
Block a user