Skip to content

Commit efdf0be

Browse files
committed
Add DROP PARTITIONED INDEX
1 parent 20f751b commit efdf0be

File tree

3 files changed

+18
-1
lines changed

3 files changed

+18
-1
lines changed

src/ast/mod.rs

+3
Original file line numberDiff line numberDiff line change
@@ -5378,6 +5378,8 @@ pub enum ObjectType {
53785378
Role,
53795379
Sequence,
53805380
Stage,
5381+
// CubeStore extension.
5382+
PartitionedIndex,
53815383
}
53825384

53835385
impl fmt::Display for ObjectType {
@@ -5390,6 +5392,7 @@ impl fmt::Display for ObjectType {
53905392
ObjectType::Role => "ROLE",
53915393
ObjectType::Sequence => "SEQUENCE",
53925394
ObjectType::Stage => "STAGE",
5395+
ObjectType::PartitionedIndex => "PARTITIONED INDEX",
53935396
})
53945397
}
53955398
}

src/parser/mod.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -4739,6 +4739,8 @@ impl<'a> Parser<'a> {
47394739
ObjectType::Role
47404740
} else if self.parse_keyword(Keyword::SCHEMA) {
47414741
ObjectType::Schema
4742+
} else if self.parse_keywords(&[Keyword::PARTITIONED, Keyword::INDEX]) {
4743+
ObjectType::PartitionedIndex
47424744
} else if self.parse_keyword(Keyword::SEQUENCE) {
47434745
ObjectType::Sequence
47444746
} else if self.parse_keyword(Keyword::STAGE) {
@@ -4753,7 +4755,7 @@ impl<'a> Parser<'a> {
47534755
return self.parse_drop_trigger();
47544756
} else {
47554757
return self.expected(
4756-
"TABLE, VIEW, INDEX, ROLE, SCHEMA, FUNCTION, PROCEDURE, STAGE, TRIGGER, SECRET or SEQUENCE after DROP",
4758+
"TABLE, VIEW, INDEX, PARTITIONED INDEX, ROLE, SCHEMA, FUNCTION, PROCEDURE, STAGE, TRIGGER, SECRET or SEQUENCE after DROP",
47574759
self.peek_token(),
47584760
);
47594761
};

tests/sqlparser_common.rs

+12
Original file line numberDiff line numberDiff line change
@@ -3469,6 +3469,18 @@ fn parse_drop_schema() {
34693469
}
34703470
}
34713471

3472+
#[test]
3473+
fn parse_drop_partitioned_index() {
3474+
let sql = "DROP PARTITIONED INDEX X";
3475+
3476+
match verified_stmt(sql) {
3477+
Statement::Drop { object_type, .. } => {
3478+
assert_eq!(object_type, ObjectType::PartitionedIndex)
3479+
}
3480+
_ => unreachable!(),
3481+
}
3482+
}
3483+
34723484
#[test]
34733485
fn parse_create_table_as() {
34743486
let sql = "CREATE TABLE t AS SELECT * FROM a";

0 commit comments

Comments
 (0)