mirror of
https://github.com/apache/datafusion-sqlparser-rs.git
synced 2025-12-23 11:12:51 +00:00
Added alter external table rename to support for snowflake
This commit is contained in:
parent
0f4a063e2d
commit
da84b910cb
2 changed files with 12 additions and 3 deletions
|
|
@ -31,7 +31,7 @@ use crate::ast::{
|
|||
ColumnPolicy, ColumnPolicyProperty, ContactEntry, CopyIntoSnowflakeKind, CreateTableLikeKind,
|
||||
DollarQuotedString, Ident, IdentityParameters, IdentityProperty, IdentityPropertyFormatKind,
|
||||
IdentityPropertyKind, IdentityPropertyOrder, InitializeKind, ObjectName, ObjectNamePart,
|
||||
RefreshModeKind, RowAccessPolicy, ShowObjects, SqlOption, Statement,
|
||||
RefreshModeKind, RenameTableNameKind, RowAccessPolicy, ShowObjects, SqlOption, Statement,
|
||||
StorageSerializationPolicy, TagsColumnOption, Value, WrappedCollection,
|
||||
};
|
||||
use crate::dialect::{Dialect, Precedence};
|
||||
|
|
@ -660,11 +660,19 @@ fn parse_alter_external_table(parser: &mut Parser) -> Result<Statement, ParserEr
|
|||
let if_exists = parser.parse_keywords(&[Keyword::IF, Keyword::EXISTS]);
|
||||
let table_name = parser.parse_object_name(true)?;
|
||||
|
||||
// Parse the operation (REFRESH for now, can be extended)
|
||||
// Parse the operation
|
||||
let operation = if parser.parse_keyword(Keyword::REFRESH) {
|
||||
AlterTableOperation::Refresh
|
||||
} else if parser.parse_keywords(&[Keyword::RENAME, Keyword::TO]) {
|
||||
let new_table_name = parser.parse_object_name(false)?;
|
||||
AlterTableOperation::RenameTable {
|
||||
table_name: RenameTableNameKind::To(new_table_name),
|
||||
}
|
||||
} else {
|
||||
return parser.expected("REFRESH after ALTER EXTERNAL TABLE", parser.peek_token());
|
||||
return parser.expected(
|
||||
"REFRESH or RENAME TO after ALTER EXTERNAL TABLE",
|
||||
parser.peek_token(),
|
||||
);
|
||||
};
|
||||
|
||||
let end_token = if parser.peek_token_ref().token == Token::SemiColon {
|
||||
|
|
|
|||
|
|
@ -4640,4 +4640,5 @@ fn test_alter_dynamic_table() {
|
|||
fn test_alter_external_table() {
|
||||
snowflake().verified_stmt("ALTER EXTERNAL TABLE some_table REFRESH");
|
||||
snowflake().verified_stmt("ALTER EXTERNAL TABLE my_database.my_schema.my_external_table REFRESH");
|
||||
snowflake().verified_stmt("ALTER EXTERNAL TABLE some_table RENAME TO new_table_name");
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue