mirror of
https://github.com/apache/datafusion-sqlparser-rs.git
synced 2025-10-10 14:02:14 +00:00
Add support for CREATE/ALTER/DROP CONNECTOR
syntax (#1701)
This commit is contained in:
parent
ec948eaf6e
commit
486b29ffab
8 changed files with 420 additions and 15 deletions
|
@ -47,14 +47,14 @@ pub use self::dcl::{
|
|||
AlterRoleOperation, ResetConfig, RoleOption, SecondaryRoles, SetConfigValue, Use,
|
||||
};
|
||||
pub use self::ddl::{
|
||||
AlterColumnOperation, AlterIndexOperation, AlterPolicyOperation, AlterTableOperation,
|
||||
ClusteredBy, ColumnDef, ColumnOption, ColumnOptionDef, ColumnPolicy, ColumnPolicyProperty,
|
||||
ConstraintCharacteristics, CreateFunction, Deduplicate, DeferrableInitial, DropBehavior,
|
||||
GeneratedAs, GeneratedExpressionMode, IdentityParameters, IdentityProperty,
|
||||
IdentityPropertyFormatKind, IdentityPropertyKind, IdentityPropertyOrder, IndexOption,
|
||||
IndexType, KeyOrIndexDisplay, NullsDistinctOption, Owner, Partition, ProcedureParam,
|
||||
ReferentialAction, TableConstraint, TagsColumnOption, UserDefinedTypeCompositeAttributeDef,
|
||||
UserDefinedTypeRepresentation, ViewColumnDef,
|
||||
AlterColumnOperation, AlterConnectorOwner, AlterIndexOperation, AlterPolicyOperation,
|
||||
AlterTableOperation, ClusteredBy, ColumnDef, ColumnOption, ColumnOptionDef, ColumnPolicy,
|
||||
ColumnPolicyProperty, ConstraintCharacteristics, CreateConnector, CreateFunction, Deduplicate,
|
||||
DeferrableInitial, DropBehavior, GeneratedAs, GeneratedExpressionMode, IdentityParameters,
|
||||
IdentityProperty, IdentityPropertyFormatKind, IdentityPropertyKind, IdentityPropertyOrder,
|
||||
IndexOption, IndexType, KeyOrIndexDisplay, NullsDistinctOption, Owner, Partition,
|
||||
ProcedureParam, ReferentialAction, TableConstraint, TagsColumnOption,
|
||||
UserDefinedTypeCompositeAttributeDef, UserDefinedTypeRepresentation, ViewColumnDef,
|
||||
};
|
||||
pub use self::dml::{CreateIndex, CreateTable, Delete, Insert};
|
||||
pub use self::operator::{BinaryOperator, UnaryOperator};
|
||||
|
@ -2646,6 +2646,11 @@ pub enum Statement {
|
|||
with_check: Option<Expr>,
|
||||
},
|
||||
/// ```sql
|
||||
/// CREATE CONNECTOR
|
||||
/// ```
|
||||
/// See [Hive](https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=27362034#LanguageManualDDL-CreateDataConnectorCreateConnector)
|
||||
CreateConnector(CreateConnector),
|
||||
/// ```sql
|
||||
/// ALTER TABLE
|
||||
/// ```
|
||||
AlterTable {
|
||||
|
@ -2697,6 +2702,20 @@ pub enum Statement {
|
|||
operation: AlterPolicyOperation,
|
||||
},
|
||||
/// ```sql
|
||||
/// ALTER CONNECTOR connector_name SET DCPROPERTIES(property_name=property_value, ...);
|
||||
/// or
|
||||
/// ALTER CONNECTOR connector_name SET URL new_url;
|
||||
/// or
|
||||
/// ALTER CONNECTOR connector_name SET OWNER [USER|ROLE] user_or_role;
|
||||
/// ```
|
||||
/// (Hive-specific)
|
||||
AlterConnector {
|
||||
name: Ident,
|
||||
properties: Option<Vec<SqlOption>>,
|
||||
url: Option<String>,
|
||||
owner: Option<ddl::AlterConnectorOwner>,
|
||||
},
|
||||
/// ```sql
|
||||
/// ATTACH DATABASE 'path/to/file' AS alias
|
||||
/// ```
|
||||
/// (SQLite-specific)
|
||||
|
@ -2795,6 +2814,11 @@ pub enum Statement {
|
|||
drop_behavior: Option<DropBehavior>,
|
||||
},
|
||||
/// ```sql
|
||||
/// DROP CONNECTOR
|
||||
/// ```
|
||||
/// See [Hive](https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=27362034#LanguageManualDDL-DropConnector)
|
||||
DropConnector { if_exists: bool, name: Ident },
|
||||
/// ```sql
|
||||
/// DECLARE
|
||||
/// ```
|
||||
/// Declare Cursor Variables
|
||||
|
@ -4354,6 +4378,7 @@ impl fmt::Display for Statement {
|
|||
|
||||
Ok(())
|
||||
}
|
||||
Statement::CreateConnector(create_connector) => create_connector.fmt(f),
|
||||
Statement::AlterTable {
|
||||
name,
|
||||
if_exists,
|
||||
|
@ -4411,6 +4436,28 @@ impl fmt::Display for Statement {
|
|||
} => {
|
||||
write!(f, "ALTER POLICY {name} ON {table_name}{operation}")
|
||||
}
|
||||
Statement::AlterConnector {
|
||||
name,
|
||||
properties,
|
||||
url,
|
||||
owner,
|
||||
} => {
|
||||
write!(f, "ALTER CONNECTOR {name}")?;
|
||||
if let Some(properties) = properties {
|
||||
write!(
|
||||
f,
|
||||
" SET DCPROPERTIES({})",
|
||||
display_comma_separated(properties)
|
||||
)?;
|
||||
}
|
||||
if let Some(url) = url {
|
||||
write!(f, " SET URL '{url}'")?;
|
||||
}
|
||||
if let Some(owner) = owner {
|
||||
write!(f, " SET OWNER {owner}")?;
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
Statement::Drop {
|
||||
object_type,
|
||||
if_exists,
|
||||
|
@ -4498,6 +4545,14 @@ impl fmt::Display for Statement {
|
|||
}
|
||||
Ok(())
|
||||
}
|
||||
Statement::DropConnector { if_exists, name } => {
|
||||
write!(
|
||||
f,
|
||||
"DROP CONNECTOR {if_exists}{name}",
|
||||
if_exists = if *if_exists { "IF EXISTS " } else { "" }
|
||||
)?;
|
||||
Ok(())
|
||||
}
|
||||
Statement::Discard { object_type } => {
|
||||
write!(f, "DISCARD {object_type}")?;
|
||||
Ok(())
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue