#![allow(clippy::all)]
use crate::ast::*;
use crate::vocab::Span;
impl<X: Extension> Spanned for SessionStatement<X> {
fn span(&self) -> Span {
match self {
SessionStatement::Set { meta, .. } => meta.span,
SessionStatement::SetTimeZone { meta, .. } => meta.span,
SessionStatement::SetRole { meta, .. } => meta.span,
SessionStatement::SetSessionAuthorization { meta, .. } => meta.span,
SessionStatement::SetConstraints { meta, .. } => meta.span,
SessionStatement::SetNames { meta, .. } => meta.span,
SessionStatement::SetSessionCharacteristics { meta, .. } => meta.span,
SessionStatement::Reset { meta, .. } => meta.span,
SessionStatement::Show { meta, .. } => meta.span,
SessionStatement::SetVariables { meta, .. } => meta.span,
SessionStatement::SetCharacterSet { meta, .. } => meta.span,
SessionStatement::SetResourceGroup { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for SetVariableAssignment<X> {
fn span(&self) -> Span {
match self {
SetVariableAssignment::SystemVariable { meta, .. } => meta.span,
SetVariableAssignment::UserVariable { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for SetVariableValue<X> {
fn span(&self) -> Span {
match self {
SetVariableValue::Default { meta, .. } => meta.span,
SetVariableValue::Keyword { meta, .. } => meta.span,
SetVariableValue::Expr { meta, .. } => meta.span,
}
}
}
impl Spanned for SetCharacterSetValue {
fn span(&self) -> Span {
match self {
SetCharacterSetValue::Default { meta, .. } => meta.span,
SetCharacterSetValue::Charset { meta, .. } => meta.span,
}
}
}
impl Spanned for SetValue {
fn span(&self) -> Span {
match self {
SetValue::Default { meta, .. } => meta.span,
SetValue::Values { meta, .. } => meta.span,
}
}
}
impl Spanned for SetParameterValue {
fn span(&self) -> Span {
match self {
SetParameterValue::Literal { meta, .. } => meta.span,
SetParameterValue::Name { meta, .. } => meta.span,
SetParameterValue::Parameter { meta, .. } => meta.span,
SetParameterValue::List { meta, .. } => meta.span,
}
}
}
impl Spanned for SpecialSetValue {
fn span(&self) -> Span {
match self {
SpecialSetValue::Default { meta, .. } => meta.span,
SpecialSetValue::Local { meta, .. } => meta.span,
SpecialSetValue::None { meta, .. } => meta.span,
SpecialSetValue::Value { meta, .. } => meta.span,
}
}
}
impl Spanned for ConstraintsTarget {
fn span(&self) -> Span {
match self {
ConstraintsTarget::All { meta, .. } => meta.span,
ConstraintsTarget::Names { meta, .. } => meta.span,
}
}
}
impl Spanned for SetNamesValue {
fn span(&self) -> Span {
match self {
SetNamesValue::Default { meta, .. } => meta.span,
SetNamesValue::Charset { meta, .. } => meta.span,
}
}
}
impl Spanned for ConfigParameter {
fn span(&self) -> Span {
match self {
ConfigParameter::All { meta, .. } => meta.span,
ConfigParameter::Named { meta, .. } => meta.span,
}
}
}
impl Spanned for AlterSystem {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for AlterSystemAction {
fn span(&self) -> Span {
match self {
AlterSystemAction::Set { meta, .. } => meta.span,
AlterSystemAction::Reset { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for AccessControlStatement<X> {
fn span(&self) -> Span {
match self {
AccessControlStatement::AlterRoleRename { meta, .. } => meta.span,
AccessControlStatement::Grant { meta, .. } => meta.span,
AccessControlStatement::Revoke { meta, .. } => meta.span,
AccessControlStatement::GrantRole { meta, .. } => meta.span,
AccessControlStatement::RevokeRole { meta, .. } => meta.span,
AccessControlStatement::AccountGrantPrivilege { meta, .. } => meta.span,
AccessControlStatement::AccountGrantProxy { meta, .. } => meta.span,
AccessControlStatement::AccountGrantRole { meta, .. } => meta.span,
AccessControlStatement::AccountRevokePrivilege { meta, .. } => meta.span,
AccessControlStatement::AccountRevokeAll { meta, .. } => meta.span,
AccessControlStatement::AccountRevokeProxy { meta, .. } => meta.span,
AccessControlStatement::AccountRevokeRole { meta, .. } => meta.span,
}
}
}
impl Spanned for PrivilegeLevelObject {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for PrivilegeLevel {
fn span(&self) -> Span {
match self {
PrivilegeLevel::Global { meta, .. } => meta.span,
PrivilegeLevel::CurrentDatabase { meta, .. } => meta.span,
PrivilegeLevel::Database { meta, .. } => meta.span,
PrivilegeLevel::Object { meta, .. } => meta.span,
}
}
}
impl Spanned for GrantAs {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for WithRoleSpec {
fn span(&self) -> Span {
match self {
WithRoleSpec::Roles { meta, .. } => meta.span,
WithRoleSpec::All { meta, .. } => meta.span,
WithRoleSpec::None { meta, .. } => meta.span,
WithRoleSpec::Default { meta, .. } => meta.span,
}
}
}
impl Spanned for Privileges {
fn span(&self) -> Span {
match self {
Privileges::All { meta, .. } => meta.span,
Privileges::List { meta, .. } => meta.span,
}
}
}
impl Spanned for Privilege {
fn span(&self) -> Span {
match self {
Privilege::Known { meta, .. } => meta.span,
Privilege::Other { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for GrantObject<X> {
fn span(&self) -> Span {
match self {
GrantObject::Table { meta, .. } => meta.span,
GrantObject::Named { meta, .. } => meta.span,
GrantObject::Routines { meta, .. } => meta.span,
GrantObject::AllInSchema { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for RoutineSignature<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for Grantee {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for RoleSpec {
fn span(&self) -> Span {
match self {
RoleSpec::Public { meta, .. } => meta.span,
RoleSpec::CurrentRole { meta, .. } => meta.span,
RoleSpec::CurrentUser { meta, .. } => meta.span,
RoleSpec::SessionUser { meta, .. } => meta.span,
RoleSpec::Name { meta, .. } => meta.span,
}
}
}
impl Spanned for CreateUser {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for UserSpec {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for AuthOption {
fn span(&self) -> Span {
match self {
AuthOption::Password { meta, .. } => meta.span,
AuthOption::RandomPassword { meta, .. } => meta.span,
AuthOption::Plugin { meta, .. } => meta.span,
AuthOption::PluginAs { meta, .. } => meta.span,
AuthOption::PluginByPassword { meta, .. } => meta.span,
AuthOption::PluginByRandomPassword { meta, .. } => meta.span,
}
}
}
impl Spanned for AlterUser {
fn span(&self) -> Span {
match self {
AlterUser::Modify { meta, .. } => meta.span,
AlterUser::DefaultRole { meta, .. } => meta.span,
}
}
}
impl Spanned for AlterUserSpec {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for DefaultRoleTarget {
fn span(&self) -> Span {
match self {
DefaultRoleTarget::All { meta, .. } => meta.span,
DefaultRoleTarget::None { meta, .. } => meta.span,
DefaultRoleTarget::Roles { meta, .. } => meta.span,
}
}
}
impl Spanned for UserRoleList {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for TlsRequirement {
fn span(&self) -> Span {
match self {
TlsRequirement::None { meta, .. } => meta.span,
TlsRequirement::Ssl { meta, .. } => meta.span,
TlsRequirement::X509 { meta, .. } => meta.span,
TlsRequirement::Options { meta, .. } => meta.span,
}
}
}
impl Spanned for TlsOption {
fn span(&self) -> Span {
match self {
TlsOption::Subject { meta, .. } => meta.span,
TlsOption::Issuer { meta, .. } => meta.span,
TlsOption::Cipher { meta, .. } => meta.span,
}
}
}
impl Spanned for ResourceLimit {
fn span(&self) -> Span {
match self {
ResourceLimit::MaxQueriesPerHour { meta, .. } => meta.span,
ResourceLimit::MaxUpdatesPerHour { meta, .. } => meta.span,
ResourceLimit::MaxConnectionsPerHour { meta, .. } => meta.span,
ResourceLimit::MaxUserConnections { meta, .. } => meta.span,
}
}
}
impl Spanned for PasswordLockOption {
fn span(&self) -> Span {
match self {
PasswordLockOption::AccountLock { meta, .. } => meta.span,
PasswordLockOption::AccountUnlock { meta, .. } => meta.span,
PasswordLockOption::PasswordExpire { meta, .. } => meta.span,
PasswordLockOption::PasswordExpireDefault { meta, .. } => meta.span,
PasswordLockOption::PasswordExpireNever { meta, .. } => meta.span,
PasswordLockOption::PasswordExpireInterval { meta, .. } => meta.span,
PasswordLockOption::PasswordHistory { meta, .. } => meta.span,
PasswordLockOption::PasswordHistoryDefault { meta, .. } => meta.span,
PasswordLockOption::PasswordReuseInterval { meta, .. } => meta.span,
PasswordLockOption::PasswordReuseIntervalDefault { meta, .. } => meta.span,
PasswordLockOption::PasswordRequireCurrent { meta, .. } => meta.span,
PasswordLockOption::PasswordRequireCurrentDefault { meta, .. } => meta.span,
PasswordLockOption::PasswordRequireCurrentOptional { meta, .. } => meta.span,
PasswordLockOption::FailedLoginAttempts { meta, .. } => meta.span,
PasswordLockOption::PasswordLockTime { meta, .. } => meta.span,
PasswordLockOption::PasswordLockTimeUnbounded { meta, .. } => meta.span,
}
}
}
impl Spanned for UserAttribute {
fn span(&self) -> Span {
match self {
UserAttribute::Comment { meta, .. } => meta.span,
UserAttribute::Attribute { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for CreateTable<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for CreateTableBody<X> {
fn span(&self) -> Span {
match self {
CreateTableBody::Definition { meta, .. } => meta.span,
CreateTableBody::AsQuery { meta, .. } => meta.span,
CreateTableBody::AsExecute { meta, .. } => meta.span,
CreateTableBody::PartitionOf { meta, .. } => meta.span,
CreateTableBody::OfType { meta, .. } => meta.span,
CreateTableBody::LikeSource { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for PartitionSpec<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for PartitionElem<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for PartitionBound<X> {
fn span(&self) -> Span {
match self {
PartitionBound::List { meta, .. } => meta.span,
PartitionBound::Range { meta, .. } => meta.span,
PartitionBound::Hash { meta, .. } => meta.span,
PartitionBound::Default { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for TableElement<X> {
fn span(&self) -> Span {
match self {
TableElement::Column { meta, .. } => meta.span,
TableElement::Constraint { meta, .. } => meta.span,
TableElement::Like { meta, .. } => meta.span,
}
}
}
impl Spanned for TableLikeOption {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for ColumnDef<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for ColumnConstraint<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for ConstraintCharacteristics {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for ColumnOption<X> {
fn span(&self) -> Span {
match self {
ColumnOption::Null { meta, .. } => meta.span,
ColumnOption::NotNull { meta, .. } => meta.span,
ColumnOption::Default { meta, .. } => meta.span,
ColumnOption::Generated { meta, .. } => meta.span,
ColumnOption::Identity { meta, .. } => meta.span,
ColumnOption::PrimaryKey { meta, .. } => meta.span,
ColumnOption::Unique { meta, .. } => meta.span,
ColumnOption::AutoIncrement { meta, .. } => meta.span,
ColumnOption::Collate { meta, .. } => meta.span,
ColumnOption::Check { meta, .. } => meta.span,
ColumnOption::References { meta, .. } => meta.span,
ColumnOption::Bare { meta, .. } => meta.span,
ColumnOption::Other { meta, .. } => meta.span,
}
}
}
impl Spanned for ForeignKeyRef {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for ReferentialAction {
fn span(&self) -> Span {
match self {
ReferentialAction::NoAction { meta, .. } => meta.span,
ReferentialAction::Restrict { meta, .. } => meta.span,
ReferentialAction::Cascade { meta, .. } => meta.span,
ReferentialAction::SetNull { meta, .. } => meta.span,
ReferentialAction::SetDefault { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for GeneratedColumn<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for IdentityColumn<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for IdentityOption<X> {
fn span(&self) -> Span {
match self {
IdentityOption::StartWith { meta, .. } => meta.span,
IdentityOption::IncrementBy { meta, .. } => meta.span,
IdentityOption::MinValue { meta, .. } => meta.span,
IdentityOption::MaxValue { meta, .. } => meta.span,
IdentityOption::Cache { meta, .. } => meta.span,
IdentityOption::Cycle { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for TableConstraintDef<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for TableConstraint<X> {
fn span(&self) -> Span {
match self {
TableConstraint::PrimaryKey { meta, .. } => meta.span,
TableConstraint::Unique { meta, .. } => meta.span,
TableConstraint::Check { meta, .. } => meta.span,
TableConstraint::Exclude { meta, .. } => meta.span,
TableConstraint::ForeignKey { meta, .. } => meta.span,
TableConstraint::Bare { meta, .. } => meta.span,
TableConstraint::Other { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for ExcludeConstraint<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for ExcludeElement<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for CreateTableOption<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for CreateTableOptionKind<X> {
fn span(&self) -> Span {
match self {
CreateTableOptionKind::ColocateWith { meta, .. } => meta.span,
CreateTableOptionKind::InColocationGroup { meta, .. } => meta.span,
CreateTableOptionKind::With { meta, .. } => meta.span,
CreateTableOptionKind::OnCommit { meta, .. } => meta.span,
CreateTableOptionKind::Tablespace { meta, .. } => meta.span,
CreateTableOptionKind::KeyValue { meta, .. } => meta.span,
CreateTableOptionKind::WithoutRowid { meta, .. } => meta.span,
CreateTableOptionKind::Strict { meta, .. } => meta.span,
CreateTableOptionKind::WithoutOids { meta, .. } => meta.span,
}
}
}
impl Spanned for TableOption {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for TableOptionValue {
fn span(&self) -> Span {
match self {
TableOptionValue::Word { meta, .. } => meta.span,
TableOptionValue::String { meta, .. } => meta.span,
TableOptionValue::Number { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for TableStorageParameter<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for AlterTable<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for AlterColumnTarget {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for AlterTableAction<X> {
fn span(&self) -> Span {
match self {
AlterTableAction::SetColocationGroup { meta, .. } => meta.span,
AlterTableAction::DropColocationGroup { meta, .. } => meta.span,
AlterTableAction::AddColumn { meta, .. } => meta.span,
AlterTableAction::DropColumn { meta, .. } => meta.span,
AlterTableAction::AlterColumn { meta, .. } => meta.span,
AlterTableAction::AddConstraint { meta, .. } => meta.span,
AlterTableAction::DropConstraint { meta, .. } => meta.span,
AlterTableAction::DropPrimaryKey { meta, .. } => meta.span,
AlterTableAction::SetOptions { meta, .. } => meta.span,
AlterTableAction::RenameColumn { meta, .. } => meta.span,
AlterTableAction::RenameConstraint { meta, .. } => meta.span,
AlterTableAction::RenameTable { meta, .. } => meta.span,
AlterTableAction::AttachPartition { meta, .. } => meta.span,
AlterTableAction::DetachPartition { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for AlterColumnAction<X> {
fn span(&self) -> Span {
match self {
AlterColumnAction::SetDefault { meta, .. } => meta.span,
AlterColumnAction::DropDefault { meta, .. } => meta.span,
AlterColumnAction::SetNotNull { meta, .. } => meta.span,
AlterColumnAction::DropNotNull { meta, .. } => meta.span,
AlterColumnAction::AddIdentity { meta, .. } => meta.span,
AlterColumnAction::SetDataType { meta, .. } => meta.span,
}
}
}
impl Spanned for DropStatement {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for DropTransform<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for CommentOnStatement<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for CreateSchema<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for CreateView<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for RefreshMaterializedView {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for CreateColocationGroup {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for DropColocationGroup {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for AlterView<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for CreateSecret<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for SecretOption<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for DropSecretStmt {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for CreateVirtualTable {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for ModuleArg {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for CreateIndex<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for IndexColumn<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for CreateTrigger<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for TriggerEvent {
fn span(&self) -> Span {
match self {
TriggerEvent::Delete { meta, .. } => meta.span,
TriggerEvent::Insert { meta, .. } => meta.span,
TriggerEvent::Update { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for CreateStoredTrigger<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for TriggerOrder {
fn span(&self) -> Span {
match self {
TriggerOrder::Follows { meta, .. } => meta.span,
TriggerOrder::Precedes { meta, .. } => meta.span,
}
}
}
impl Spanned for CreateDatabase {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for CreateFunction<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for FunctionParam<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for FunctionParamDefault<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for FunctionOption<X> {
fn span(&self) -> Span {
match self {
FunctionOption::Language { meta, .. } => meta.span,
FunctionOption::As { meta, .. } => meta.span,
FunctionOption::NullBehavior { meta, .. } => meta.span,
FunctionOption::Deterministic { meta, .. } => meta.span,
FunctionOption::DataAccess { meta, .. } => meta.span,
FunctionOption::SqlSecurity { meta, .. } => meta.span,
FunctionOption::Comment { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for FunctionBody<X> {
fn span(&self) -> Span {
match self {
FunctionBody::Definition { meta, .. } => meta.span,
FunctionBody::Return { meta, .. } => meta.span,
FunctionBody::Block { meta, .. } => meta.span,
}
}
}
impl Spanned for Definer {
fn span(&self) -> Span {
match self {
Definer::Account { meta, .. } => meta.span,
Definer::CurrentUser { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for CreateProcedure<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for AlterRoutine<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for EventSchedule<X> {
fn span(&self) -> Span {
match self {
EventSchedule::At { meta, .. } => meta.span,
EventSchedule::Every { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for CreateEvent<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for AlterEvent<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for DropEvent {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for DropDatabase {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for DropIndexOnTable {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for CreateMacro<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for MacroParam<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for MacroBody<X> {
fn span(&self) -> Span {
match self {
MacroBody::Scalar { meta, .. } => meta.span,
MacroBody::Table { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for CreateType<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for CreateTypeDefinition<X> {
fn span(&self) -> Span {
match self {
CreateTypeDefinition::Enum { meta, .. } => meta.span,
CreateTypeDefinition::EnumFromQuery { meta, .. } => meta.span,
CreateTypeDefinition::Alias { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for CreateSequence<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for CreateExtension {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for CreateExtensionOption {
fn span(&self) -> Span {
match self {
CreateExtensionOption::Schema { meta, .. } => meta.span,
CreateExtensionOption::Version { meta, .. } => meta.span,
CreateExtensionOption::Cascade { meta, .. } => meta.span,
}
}
}
impl Spanned for ExtensionVersion {
fn span(&self) -> Span {
match self {
ExtensionVersion::Word { meta, .. } => meta.span,
ExtensionVersion::String { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for AlterExtension<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for AlterExtensionAction<X> {
fn span(&self) -> Span {
match self {
AlterExtensionAction::Update { meta, .. } => meta.span,
AlterExtensionAction::Change { meta, .. } => meta.span,
}
}
}
impl Spanned for AlterDatabase {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for AlterDatabaseAction {
fn span(&self) -> Span {
match self {
AlterDatabaseAction::SetAlias { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for AlterSequence<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for AlterSequenceOption<X> {
fn span(&self) -> Span {
match self {
AlterSequenceOption::Common { meta, .. } => meta.span,
AlterSequenceOption::Restart { meta, .. } => meta.span,
AlterSequenceOption::As { meta, .. } => meta.span,
AlterSequenceOption::OwnedBy { meta, .. } => meta.span,
AlterSequenceOption::SequenceName { meta, .. } => meta.span,
}
}
}
impl Spanned for AlterObjectSchema {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for ObjectReference<X> {
fn span(&self) -> Span {
match self {
ObjectReference::Named { meta, .. } => meta.span,
ObjectReference::Routine { meta, .. } => meta.span,
ObjectReference::Aggregate { meta, .. } => meta.span,
ObjectReference::Operator { meta, .. } => meta.span,
ObjectReference::OperatorClass { meta, .. } => meta.span,
ObjectReference::Cast { meta, .. } => meta.span,
ObjectReference::Type { meta, .. } => meta.span,
ObjectReference::Transform { meta, .. } => meta.span,
ObjectReference::Trigger { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for AggregateArgs<X> {
fn span(&self) -> Span {
match self {
AggregateArgs::Star { meta, .. } => meta.span,
AggregateArgs::Types { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for OperatorArgs<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for AlterObjectDepends<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for CreateServer {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for AlterServer {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for DropServer {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for ServerOption {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for AlterInstance {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for AlterInstanceAction {
fn span(&self) -> Span {
match self {
AlterInstanceAction::RotateInnodbMasterKey { meta, .. } => meta.span,
AlterInstanceAction::RotateBinlogMasterKey { meta, .. } => meta.span,
AlterInstanceAction::ReloadTls { meta, .. } => meta.span,
AlterInstanceAction::ReloadKeyring { meta, .. } => meta.span,
AlterInstanceAction::EnableInnodbRedoLog { meta, .. } => meta.span,
AlterInstanceAction::DisableInnodbRedoLog { meta, .. } => meta.span,
}
}
}
impl Spanned for CreateSpatialReferenceSystem {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for SrsAttribute {
fn span(&self) -> Span {
match self {
SrsAttribute::Name { meta, .. } => meta.span,
SrsAttribute::Definition { meta, .. } => meta.span,
SrsAttribute::Organization { meta, .. } => meta.span,
SrsAttribute::Description { meta, .. } => meta.span,
}
}
}
impl Spanned for DropSpatialReferenceSystem {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for CreateResourceGroup {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for AlterResourceGroup {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for DropResourceGroup {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for ResourceGroupVcpu {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for VcpuRange {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for ResourceGroupThreadPriority {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for AlterDatabaseOptions {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for AlterDatabaseOption {
fn span(&self) -> Span {
match self {
AlterDatabaseOption::CharacterSet { meta, .. } => meta.span,
AlterDatabaseOption::Collate { meta, .. } => meta.span,
AlterDatabaseOption::Encryption { meta, .. } => meta.span,
AlterDatabaseOption::ReadOnly { meta, .. } => meta.span,
}
}
}
impl Spanned for SizeLiteral {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for TablespaceOption {
fn span(&self) -> Span {
match self {
TablespaceOption::Size { meta, .. } => meta.span,
TablespaceOption::Nodegroup { meta, .. } => meta.span,
TablespaceOption::Engine { meta, .. } => meta.span,
TablespaceOption::Wait { meta, .. } => meta.span,
TablespaceOption::Comment { meta, .. } => meta.span,
TablespaceOption::Encryption { meta, .. } => meta.span,
TablespaceOption::EngineAttribute { meta, .. } => meta.span,
}
}
}
impl Spanned for CreateTablespace {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for AlterTablespace {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for AlterTablespaceAction {
fn span(&self) -> Span {
match self {
AlterTablespaceAction::AddDatafile { meta, .. } => meta.span,
AlterTablespaceAction::DropDatafile { meta, .. } => meta.span,
AlterTablespaceAction::Rename { meta, .. } => meta.span,
AlterTablespaceAction::Options { meta, .. } => meta.span,
AlterTablespaceAction::SetState { meta, .. } => meta.span,
}
}
}
impl Spanned for DropTablespace {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for CreateLogfileGroup {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for AlterLogfileGroup {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for DropLogfileGroup {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for Insert<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for InsertTarget {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for InsertSource<X> {
fn span(&self) -> Span {
match self {
InsertSource::DefaultValues { meta, .. } => meta.span,
InsertSource::Values { meta, .. } => meta.span,
InsertSource::Query { meta, .. } => meta.span,
InsertSource::Set { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for InsertValues<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for InsertValue<X> {
fn span(&self) -> Span {
match self {
InsertValue::Expr { meta, .. } => meta.span,
InsertValue::Default { meta, .. } => meta.span,
}
}
}
impl Spanned for DmlTarget {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for Update<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for UpdateAssignment<X> {
fn span(&self) -> Span {
match self {
UpdateAssignment::Single { meta, .. } => meta.span,
UpdateAssignment::Tuple { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for UpdateValue<X> {
fn span(&self) -> Span {
match self {
UpdateValue::Expr { meta, .. } => meta.span,
UpdateValue::Default { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for UpdateTupleSource<X> {
fn span(&self) -> Span {
match self {
UpdateTupleSource::Row { meta, .. } => meta.span,
UpdateTupleSource::Subquery { meta, .. } => meta.span,
UpdateTupleSource::Default { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for Delete<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for DmlSelection<X> {
fn span(&self) -> Span {
match self {
DmlSelection::Where { meta, .. } => meta.span,
DmlSelection::CurrentOf { meta, .. } => meta.span,
}
}
}
impl Spanned for DefaultValue {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for Returning<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for Upsert<X> {
fn span(&self) -> Span {
match self {
Upsert::OnConflict { meta, .. } => meta.span,
Upsert::OnDuplicateKeyUpdate { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for OnConflict<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for ConflictTarget<X> {
fn span(&self) -> Span {
match self {
ConflictTarget::Index { meta, .. } => meta.span,
ConflictTarget::Constraint { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for ConflictAction<X> {
fn span(&self) -> Span {
match self {
ConflictAction::Nothing { meta, .. } => meta.span,
ConflictAction::Update { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for Merge<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for MergeWhenClause<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for MergeAction<X> {
fn span(&self) -> Span {
match self {
MergeAction::Insert { meta, .. } => meta.span,
MergeAction::InsertDefault { meta, .. } => meta.span,
MergeAction::Update { meta, .. } => meta.span,
MergeAction::UpdateStar { meta, .. } => meta.span,
MergeAction::InsertStar { meta, .. } => meta.span,
MergeAction::InsertByName { meta, .. } => meta.span,
MergeAction::Error { meta, .. } => meta.span,
MergeAction::Delete { meta, .. } => meta.span,
MergeAction::DoNothing { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for Expr<X> {
fn span(&self) -> Span {
match self {
Expr::Column { meta, .. } => meta.span,
Expr::Literal { meta, .. } => meta.span,
Expr::BinaryOp { meta, .. } => meta.span,
Expr::UnaryOp { meta, .. } => meta.span,
Expr::Function { meta, .. } => meta.span,
Expr::Case { meta, .. } => meta.span,
Expr::Extract { meta, .. } => meta.span,
Expr::Cast { meta, .. } => meta.span,
Expr::IsNull { meta, .. } => meta.span,
Expr::IsTruth { meta, .. } => meta.span,
Expr::IsNormalized { meta, .. } => meta.span,
Expr::Between { meta, .. } => meta.span,
Expr::Like { meta, .. } => meta.span,
Expr::InList { meta, .. } => meta.span,
Expr::InSubquery { meta, .. } => meta.span,
Expr::InExpr { meta, .. } => meta.span,
Expr::Exists { meta, .. } => meta.span,
Expr::QuantifiedComparison { meta, .. } => meta.span,
Expr::QuantifiedList { meta, .. } => meta.span,
Expr::QuantifiedLike { meta, .. } => meta.span,
Expr::Subquery { meta, .. } => meta.span,
Expr::Parameter { meta, .. } => meta.span,
Expr::PositionalColumn { meta, .. } => meta.span,
Expr::SessionVariable { meta, .. } => meta.span,
Expr::Subscript { meta, .. } => meta.span,
Expr::SemiStructuredAccess { meta, .. } => meta.span,
Expr::Collate { meta, .. } => meta.span,
Expr::Interval { meta, .. } => meta.span,
Expr::AtTimeZone { meta, .. } => meta.span,
Expr::Array { meta, .. } => meta.span,
Expr::Struct { meta, .. } => meta.span,
Expr::StructConstructor { meta, .. } => meta.span,
Expr::Map { meta, .. } => meta.span,
Expr::Row { meta, .. } => meta.span,
Expr::FieldSelection { meta, .. } => meta.span,
Expr::NamedOperator { meta, .. } => meta.span,
Expr::PrefixOperator { meta, .. } => meta.span,
Expr::PostfixOperator { meta, .. } => meta.span,
Expr::Lambda { meta, .. } => meta.span,
Expr::Columns { meta, .. } => meta.span,
Expr::SpecialFunction { meta, .. } => meta.span,
Expr::JsonFunc { meta, .. } => meta.span,
Expr::JsonObject { meta, .. } => meta.span,
Expr::JsonArray { meta, .. } => meta.span,
Expr::JsonAggregate { meta, .. } => meta.span,
Expr::JsonConstructor { meta, .. } => meta.span,
Expr::IsJson { meta, .. } => meta.span,
Expr::XmlFunc { meta, .. } => meta.span,
Expr::IsDocument { meta, .. } => meta.span,
Expr::StringFunc { meta, .. } => meta.span,
Expr::Other { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for SubscriptExpr<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for SemiStructuredAccessExpr<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for SemiStructuredPathSegment<X> {
fn span(&self) -> Span {
match self {
SemiStructuredPathSegment::Key { meta, .. } => meta.span,
SemiStructuredPathSegment::Index { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for CollateExpr<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for AtTimeZoneExpr<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for ArrayExpr<X> {
fn span(&self) -> Span {
match self {
ArrayExpr::Elements { meta, .. } => meta.span,
ArrayExpr::Subquery { meta, .. } => meta.span,
ArrayExpr::Comprehension { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for ListComprehension<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for ComprehensionSource<X> {
fn span(&self) -> Span {
match self {
ComprehensionSource::Expr { meta, .. } => meta.span,
ComprehensionSource::Star { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for StructExpr<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for StructField<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for StructConstructorExpr<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for StructConstructorField<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for StructConstructorArg<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for MapExpr<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for MapEntry<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for RowExpr<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for FieldSelectionExpr<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for FieldSelector {
fn span(&self) -> Span {
match self {
FieldSelector::Field { meta, .. } => meta.span,
FieldSelector::Star { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for NamedOperatorExpr<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for PrefixOperatorExpr<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for PostfixOperatorExpr<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for LambdaExpr<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for FunctionCall<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for FunctionArg<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for CaseExpr<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for WhenClause<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for ExtractExpr<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for JsonValueExpr<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for JsonReturning<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for JsonPassingArg<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for JsonBehavior<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for JsonFuncExpr<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for JsonKeyValue<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for JsonObjectExpr<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for JsonArrayBody<X> {
fn span(&self) -> Span {
match self {
JsonArrayBody::Values { meta, .. } => meta.span,
JsonArrayBody::Query { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for JsonArrayExpr<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for JsonAggregateBody<X> {
fn span(&self) -> Span {
match self {
JsonAggregateBody::Object { meta, .. } => meta.span,
JsonAggregateBody::Array { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for JsonAggregateExpr<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for JsonConstructorExpr<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for IsJsonExpr<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for XmlFunc<X> {
fn span(&self) -> Span {
match self {
XmlFunc::Element { meta, .. } => meta.span,
XmlFunc::Forest { meta, .. } => meta.span,
XmlFunc::Concat { meta, .. } => meta.span,
XmlFunc::Parse { meta, .. } => meta.span,
XmlFunc::Pi { meta, .. } => meta.span,
XmlFunc::Root { meta, .. } => meta.span,
XmlFunc::Serialize { meta, .. } => meta.span,
XmlFunc::Exists { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for XmlAttribute<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for StringFunc<X> {
fn span(&self) -> Span {
match self {
StringFunc::Substring { meta, .. } => meta.span,
StringFunc::SubstringSimilar { meta, .. } => meta.span,
StringFunc::Position { meta, .. } => meta.span,
StringFunc::Overlay { meta, .. } => meta.span,
StringFunc::Trim { meta, .. } => meta.span,
StringFunc::CollationFor { meta, .. } => meta.span,
StringFunc::ConvertUsing { meta, .. } => meta.span,
StringFunc::MatchAgainst { meta, .. } => meta.span,
StringFunc::CeilTo { meta, .. } => meta.span,
StringFunc::FloorTo { meta, .. } => meta.span,
}
}
}
impl Spanned for Ident {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for ObjectName {
fn span(&self) -> Span {
self.0
.iter()
.fold(Span::SYNTHETIC, |acc, item| acc.union(item.span()))
}
}
impl Spanned for Literal {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for MatchRecognize<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for Measure<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for AfterMatchSkip {
fn span(&self) -> Span {
match self {
AfterMatchSkip::PastLastRow { meta, .. } => meta.span,
AfterMatchSkip::ToNextRow { meta, .. } => meta.span,
AfterMatchSkip::ToFirst { meta, .. } => meta.span,
AfterMatchSkip::ToLast { meta, .. } => meta.span,
}
}
}
impl Spanned for SubsetDefinition {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for SymbolDefinition<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for MatchRecognizePattern {
fn span(&self) -> Span {
match self {
MatchRecognizePattern::Symbol { meta, .. } => meta.span,
MatchRecognizePattern::Start { meta, .. } => meta.span,
MatchRecognizePattern::End { meta, .. } => meta.span,
MatchRecognizePattern::Concat { meta, .. } => meta.span,
MatchRecognizePattern::Alternation { meta, .. } => meta.span,
MatchRecognizePattern::Group { meta, .. } => meta.span,
MatchRecognizePattern::Exclude { meta, .. } => meta.span,
MatchRecognizePattern::Permute { meta, .. } => meta.span,
MatchRecognizePattern::Repetition { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for PipeOperator<X> {
fn span(&self) -> Span {
match self {
PipeOperator::Where { meta, .. } => meta.span,
PipeOperator::Select { meta, .. } => meta.span,
PipeOperator::Extend { meta, .. } => meta.span,
PipeOperator::As { meta, .. } => meta.span,
PipeOperator::OrderBy { meta, .. } => meta.span,
PipeOperator::Limit { meta, .. } => meta.span,
PipeOperator::Join { meta, .. } => meta.span,
PipeOperator::SetOperation { meta, .. } => meta.span,
PipeOperator::Set { meta, .. } => meta.span,
PipeOperator::Call { meta, .. } => meta.span,
PipeOperator::Aggregate { meta, .. } => meta.span,
PipeOperator::Drop { meta, .. } => meta.span,
PipeOperator::Rename { meta, .. } => meta.span,
PipeOperator::Pivot { meta, .. } => meta.span,
PipeOperator::Unpivot { meta, .. } => meta.span,
PipeOperator::TableSample { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for PipeAggregateExpr<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for PipeRenameItem {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for Pivot<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for Unpivot<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for PivotExpr<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for PivotColumn<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for PivotValueSource<X> {
fn span(&self) -> Span {
match self {
PivotValueSource::Any { meta, .. } => meta.span,
PivotValueSource::Subquery { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for UnpivotColumn<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for Query<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for LockingClause {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for SetExpr<X> {
fn span(&self) -> Span {
match self {
SetExpr::Select { meta, .. } => meta.span,
SetExpr::Values { meta, .. } => meta.span,
SetExpr::Query { meta, .. } => meta.span,
SetExpr::SetOperation { meta, .. } => meta.span,
SetExpr::Pivot { meta, .. } => meta.span,
SetExpr::Unpivot { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for With<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for Cte<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for CteSearchClause {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for CteCycleClause<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for CteCycleMark<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for CteBody<X> {
fn span(&self) -> Span {
match self {
CteBody::Query { meta, .. } => meta.span,
CteBody::Insert { meta, .. } => meta.span,
CteBody::Update { meta, .. } => meta.span,
CteBody::Delete { meta, .. } => meta.span,
CteBody::Merge { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for Values<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for ValuesItem<X> {
fn span(&self) -> Span {
match self {
ValuesItem::Expr { meta, .. } => meta.span,
ValuesItem::Default { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for Select<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for IntoTarget {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for GroupByItem<X> {
fn span(&self) -> Span {
match self {
GroupByItem::Expr { meta, .. } => meta.span,
GroupByItem::Rollup { meta, .. } => meta.span,
GroupByItem::Cube { meta, .. } => meta.span,
GroupByItem::GroupingSets { meta, .. } => meta.span,
GroupByItem::Empty { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for SelectItem<X> {
fn span(&self) -> Span {
match self {
SelectItem::Wildcard { meta, .. } => meta.span,
SelectItem::QualifiedWildcard { meta, .. } => meta.span,
SelectItem::Expr { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for WildcardOptions<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for WildcardReplace<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for WildcardRename {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for SelectDistinct<X> {
fn span(&self) -> Span {
match self {
SelectDistinct::Quantifier { meta, .. } => meta.span,
SelectDistinct::On { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for TableWithJoins<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for TableAlias {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for TableSample<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for TableVersion<X> {
fn span(&self) -> Span {
match self {
TableVersion::ForSystemTimeAsOf { meta, .. } => meta.span,
TableVersion::ForSystemTimeFromTo { meta, .. } => meta.span,
TableVersion::ForSystemTimeBetween { meta, .. } => meta.span,
TableVersion::ForSystemTimeContainedIn { meta, .. } => meta.span,
TableVersion::ForSystemTimeAll { meta, .. } => meta.span,
TableVersion::VersionAsOf { meta, .. } => meta.span,
TableVersion::TimestampAsOf { meta, .. } => meta.span,
}
}
}
impl Spanned for SampleClause {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for TableFunctionColumn<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for RowsFromItem<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for IndexHint {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for IndexedBy {
fn span(&self) -> Span {
match self {
IndexedBy::Named { meta, .. } => meta.span,
IndexedBy::NotIndexed { meta, .. } => meta.span,
}
}
}
impl Spanned for TableHint {
fn span(&self) -> Span {
match self {
TableHint::Keyword { meta, .. } => meta.span,
TableHint::Index { meta, .. } => meta.span,
TableHint::ForceSeek { meta, .. } => meta.span,
TableHint::Other { meta, .. } => meta.span,
}
}
}
impl Spanned for ForceSeekTarget {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for TableFactor<X> {
fn span(&self) -> Span {
match self {
TableFactor::Table { meta, .. } => meta.span,
TableFactor::Derived { meta, .. } => meta.span,
TableFactor::Function { meta, .. } => meta.span,
TableFactor::RowsFrom { meta, .. } => meta.span,
TableFactor::Unnest { meta, .. } => meta.span,
TableFactor::NestedJoin { meta, .. } => meta.span,
TableFactor::SpecialFunction { meta, .. } => meta.span,
TableFactor::Pivot { meta, .. } => meta.span,
TableFactor::Unpivot { meta, .. } => meta.span,
TableFactor::MatchRecognize { meta, .. } => meta.span,
TableFactor::ShowRef { meta, .. } => meta.span,
TableFactor::JsonTable { meta, .. } => meta.span,
TableFactor::XmlTable { meta, .. } => meta.span,
TableFactor::OpenJson { meta, .. } => meta.span,
TableFactor::TableExpr { meta, .. } => meta.span,
TableFactor::Other { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for ShowRef<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for ShowRefTarget<X> {
fn span(&self) -> Span {
match self {
ShowRefTarget::Empty { meta, .. } => meta.span,
ShowRefTarget::Query { meta, .. } => meta.span,
ShowRefTarget::Name { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for JsonTable<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for JsonTableColumn<X> {
fn span(&self) -> Span {
match self {
JsonTableColumn::ForOrdinality { meta, .. } => meta.span,
JsonTableColumn::Regular { meta, .. } => meta.span,
JsonTableColumn::Exists { meta, .. } => meta.span,
JsonTableColumn::Nested { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for XmlTable<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for XmlNamespace<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for XmlTableColumn<X> {
fn span(&self) -> Span {
match self {
XmlTableColumn::ForOrdinality { meta, .. } => meta.span,
XmlTableColumn::Regular { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for OpenJson<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for OpenJsonColumn<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for Join<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for JoinOperator<X> {
fn span(&self) -> Span {
match self {
JoinOperator::Inner { meta, .. } => meta.span,
JoinOperator::LeftOuter { meta, .. } => meta.span,
JoinOperator::RightOuter { meta, .. } => meta.span,
JoinOperator::FullOuter { meta, .. } => meta.span,
JoinOperator::AsOf { meta, .. } => meta.span,
JoinOperator::Cross { meta, .. } => meta.span,
JoinOperator::Positional { meta, .. } => meta.span,
JoinOperator::Semi { meta, .. } => meta.span,
JoinOperator::Anti { meta, .. } => meta.span,
JoinOperator::Apply { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for JoinConstraint<X> {
fn span(&self) -> Span {
match self {
JoinConstraint::On { meta, .. } => meta.span,
JoinConstraint::Using { meta, .. } => meta.span,
JoinConstraint::Natural { meta, .. } => meta.span,
JoinConstraint::None { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for OrderByExpr<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for OrderByUsing {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for OrderByAll {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for Limit<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for LimitBy<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for Setting<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for FormatClause {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for ForClause {
fn span(&self) -> Span {
match self {
ForClause::Xml { meta, .. } => meta.span,
ForClause::Json { meta, .. } => meta.span,
}
}
}
impl Spanned for ForXmlMode {
fn span(&self) -> Span {
match self {
ForXmlMode::Raw { meta, .. } => meta.span,
ForXmlMode::Auto { meta, .. } => meta.span,
ForXmlMode::Explicit { meta, .. } => meta.span,
ForXmlMode::Path { meta, .. } => meta.span,
}
}
}
impl Spanned for ForRoot {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for LateralView<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for HierarchicalClause<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for ReplicationStatement {
fn span(&self) -> Span {
match self {
ReplicationStatement::ChangeSource { meta, .. } => meta.span,
ReplicationStatement::ChangeFilter { meta, .. } => meta.span,
ReplicationStatement::StartReplica { meta, .. } => meta.span,
ReplicationStatement::StopReplica { meta, .. } => meta.span,
ReplicationStatement::StartGroupReplication { meta, .. } => meta.span,
ReplicationStatement::StopGroupReplication { meta, .. } => meta.span,
}
}
}
impl Spanned for ChangeReplicationSourceOption {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for ChangeReplicationSourceOptionValue {
fn span(&self) -> Span {
match self {
ChangeReplicationSourceOptionValue::String { meta, .. } => meta.span,
ChangeReplicationSourceOptionValue::Number { meta, .. } => meta.span,
ChangeReplicationSourceOptionValue::NullableString { meta, .. } => meta.span,
ChangeReplicationSourceOptionValue::User { meta, .. } => meta.span,
ChangeReplicationSourceOptionValue::ServerIds { meta, .. } => meta.span,
ChangeReplicationSourceOptionValue::PrimaryKeyCheck { meta, .. } => meta.span,
ChangeReplicationSourceOptionValue::AssignGtids { meta, .. } => meta.span,
}
}
}
impl Spanned for ReplicationFilterRule {
fn span(&self) -> Span {
match self {
ReplicationFilterRule::DoDb { meta, .. } => meta.span,
ReplicationFilterRule::IgnoreDb { meta, .. } => meta.span,
ReplicationFilterRule::DoTable { meta, .. } => meta.span,
ReplicationFilterRule::IgnoreTable { meta, .. } => meta.span,
ReplicationFilterRule::WildDoTable { meta, .. } => meta.span,
ReplicationFilterRule::WildIgnoreTable { meta, .. } => meta.span,
ReplicationFilterRule::RewriteDb { meta, .. } => meta.span,
}
}
}
impl Spanned for RewriteDbPair {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for ReplicaThreadOption {
fn span(&self) -> Span {
match self {
ReplicaThreadOption::Sql { meta, .. } => meta.span,
ReplicaThreadOption::Io { meta, .. } => meta.span,
}
}
}
impl Spanned for ReplicaUntilCondition {
fn span(&self) -> Span {
match self {
ReplicaUntilCondition::SourceLogFile { meta, .. } => meta.span,
ReplicaUntilCondition::SourceLogPos { meta, .. } => meta.span,
ReplicaUntilCondition::RelayLogFile { meta, .. } => meta.span,
ReplicaUntilCondition::RelayLogPos { meta, .. } => meta.span,
ReplicaUntilCondition::SqlBeforeGtids { meta, .. } => meta.span,
ReplicaUntilCondition::SqlAfterGtids { meta, .. } => meta.span,
ReplicaUntilCondition::SqlAfterMtsGaps { meta, .. } => meta.span,
}
}
}
impl Spanned for GroupReplicationOption {
fn span(&self) -> Span {
match self {
GroupReplicationOption::User { meta, .. } => meta.span,
GroupReplicationOption::Password { meta, .. } => meta.span,
GroupReplicationOption::DefaultAuth { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for Statement<X> {
fn span(&self) -> Span {
match self {
Statement::Query { meta, .. } => meta.span,
Statement::CreateTable { meta, .. } => meta.span,
Statement::AlterTable { meta, .. } => meta.span,
Statement::Drop { meta, .. } => meta.span,
Statement::CreateSchema { meta, .. } => meta.span,
Statement::CreateView { meta, .. } => meta.span,
Statement::RefreshMaterializedView { meta, .. } => meta.span,
Statement::CreateColocationGroup { meta, .. } => meta.span,
Statement::DropColocationGroup { meta, .. } => meta.span,
Statement::AlterView { meta, .. } => meta.span,
Statement::CreateIndex { meta, .. } => meta.span,
Statement::CreateFunction { meta, .. } => meta.span,
Statement::CreateProcedure { meta, .. } => meta.span,
Statement::AlterRoutine { meta, .. } => meta.span,
Statement::CreateEvent { meta, .. } => meta.span,
Statement::AlterEvent { meta, .. } => meta.span,
Statement::DropEvent { meta, .. } => meta.span,
Statement::DropDatabase { meta, .. } => meta.span,
Statement::DropIndex { meta, .. } => meta.span,
Statement::CreateDatabase { meta, .. } => meta.span,
Statement::DropRoutine { meta, .. } => meta.span,
Statement::DropTransform { meta, .. } => meta.span,
Statement::Truncate { meta, .. } => meta.span,
Statement::CommentOn { meta, .. } => meta.span,
Statement::Insert { meta, .. } => meta.span,
Statement::Update { meta, .. } => meta.span,
Statement::Delete { meta, .. } => meta.span,
Statement::Merge { meta, .. } => meta.span,
Statement::Transaction { meta, .. } => meta.span,
Statement::Xa { meta, .. } => meta.span,
Statement::Session { meta, .. } => meta.span,
Statement::AccessControl { meta, .. } => meta.span,
Statement::Copy { meta, .. } => meta.span,
Statement::CopyInto { meta, .. } => meta.span,
Statement::Export { meta, .. } => meta.span,
Statement::Import { meta, .. } => meta.span,
Statement::Explain { meta, .. } => meta.span,
Statement::Describe { meta, .. } => meta.span,
Statement::Show { meta, .. } => meta.span,
Statement::Kill { meta, .. } => meta.span,
Statement::Handler { meta, .. } => meta.span,
Statement::Install { meta, .. } => meta.span,
Statement::Uninstall { meta, .. } => meta.span,
Statement::Shutdown { meta, .. } => meta.span,
Statement::Restart { meta, .. } => meta.span,
Statement::Clone { meta, .. } => meta.span,
Statement::ImportTable { meta, .. } => meta.span,
Statement::Help { meta, .. } => meta.span,
Statement::Binlog { meta, .. } => meta.span,
Statement::Pragma { meta, .. } => meta.span,
Statement::Attach { meta, .. } => meta.span,
Statement::Detach { meta, .. } => meta.span,
Statement::Checkpoint { meta, .. } => meta.span,
Statement::Load { meta, .. } => meta.span,
Statement::LoadData { meta, .. } => meta.span,
Statement::UpdateExtensions { meta, .. } => meta.span,
Statement::Vacuum { meta, .. } => meta.span,
Statement::Reindex { meta, .. } => meta.span,
Statement::Analyze { meta, .. } => meta.span,
Statement::TableMaintenance { meta, .. } => meta.span,
Statement::CacheIndex { meta, .. } => meta.span,
Statement::LoadIndex { meta, .. } => meta.span,
Statement::Rename { meta, .. } => meta.span,
Statement::Flush { meta, .. } => meta.span,
Statement::Purge { meta, .. } => meta.span,
Statement::Replication { meta, .. } => meta.span,
Statement::CreateUser { meta, .. } => meta.span,
Statement::AlterUser { meta, .. } => meta.span,
Statement::UserRoleList { meta, .. } => meta.span,
Statement::Use { meta, .. } => meta.span,
Statement::CreateTrigger { meta, .. } => meta.span,
Statement::CreateStoredTrigger { meta, .. } => meta.span,
Statement::CreateMacro { meta, .. } => meta.span,
Statement::CreateSecret { meta, .. } => meta.span,
Statement::DropSecret { meta, .. } => meta.span,
Statement::CreateType { meta, .. } => meta.span,
Statement::CreateVirtualTable { meta, .. } => meta.span,
Statement::CreateSequence { meta, .. } => meta.span,
Statement::CreateExtension { meta, .. } => meta.span,
Statement::AlterExtension { meta, .. } => meta.span,
Statement::CreateTablespace { meta, .. } => meta.span,
Statement::AlterTablespace { meta, .. } => meta.span,
Statement::DropTablespace { meta, .. } => meta.span,
Statement::CreateLogfileGroup { meta, .. } => meta.span,
Statement::AlterLogfileGroup { meta, .. } => meta.span,
Statement::DropLogfileGroup { meta, .. } => meta.span,
Statement::AlterObjectDepends { meta, .. } => meta.span,
Statement::AlterSystem { meta, .. } => meta.span,
Statement::AlterDatabase { meta, .. } => meta.span,
Statement::AlterDatabaseOptions { meta, .. } => meta.span,
Statement::CreateServer { meta, .. } => meta.span,
Statement::AlterServer { meta, .. } => meta.span,
Statement::DropServer { meta, .. } => meta.span,
Statement::AlterInstance { meta, .. } => meta.span,
Statement::CreateSpatialReferenceSystem { meta, .. } => meta.span,
Statement::DropSpatialReferenceSystem { meta, .. } => meta.span,
Statement::CreateResourceGroup { meta, .. } => meta.span,
Statement::AlterResourceGroup { meta, .. } => meta.span,
Statement::DropResourceGroup { meta, .. } => meta.span,
Statement::AlterSequence { meta, .. } => meta.span,
Statement::AlterObjectSchema { meta, .. } => meta.span,
Statement::Pivot { meta, .. } => meta.span,
Statement::Unpivot { meta, .. } => meta.span,
Statement::ShowRef { meta, .. } => meta.span,
Statement::Prepare { meta, .. } => meta.span,
Statement::Execute { meta, .. } => meta.span,
Statement::PrepareFrom { meta, .. } => meta.span,
Statement::ExecuteUsing { meta, .. } => meta.span,
Statement::Deallocate { meta, .. } => meta.span,
Statement::Call { meta, .. } => meta.span,
Statement::Do { meta, .. } => meta.span,
Statement::DoExpressions { meta, .. } => meta.span,
Statement::LockTables { meta, .. } => meta.span,
Statement::UnlockTables { meta, .. } => meta.span,
Statement::InstanceLock { meta, .. } => meta.span,
Statement::Compound { meta, .. } => meta.span,
Statement::If { meta, .. } => meta.span,
Statement::Case { meta, .. } => meta.span,
Statement::Loop { meta, .. } => meta.span,
Statement::While { meta, .. } => meta.span,
Statement::Repeat { meta, .. } => meta.span,
Statement::Leave { meta, .. } => meta.span,
Statement::Iterate { meta, .. } => meta.span,
Statement::Return { meta, .. } => meta.span,
Statement::OpenCursor { meta, .. } => meta.span,
Statement::FetchCursor { meta, .. } => meta.span,
Statement::CloseCursor { meta, .. } => meta.span,
Statement::Signal { meta, .. } => meta.span,
Statement::Resignal { meta, .. } => meta.span,
Statement::GetDiagnostics { meta, .. } => meta.span,
Statement::Other { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for CompoundStatement<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for Declaration<X> {
fn span(&self) -> Span {
match self {
Declaration::Variable { meta, .. } => meta.span,
Declaration::Condition { meta, .. } => meta.span,
Declaration::Cursor { meta, .. } => meta.span,
Declaration::Handler { meta, .. } => meta.span,
}
}
}
impl Spanned for ConditionValue {
fn span(&self) -> Span {
match self {
ConditionValue::SqlState { meta, .. } => meta.span,
ConditionValue::ErrorCode { meta, .. } => meta.span,
ConditionValue::ConditionName { meta, .. } => meta.span,
}
}
}
impl Spanned for HandlerCondition {
fn span(&self) -> Span {
match self {
HandlerCondition::SqlState { meta, .. } => meta.span,
HandlerCondition::ErrorCode { meta, .. } => meta.span,
HandlerCondition::ConditionName { meta, .. } => meta.span,
HandlerCondition::SqlWarning { meta, .. } => meta.span,
HandlerCondition::NotFound { meta, .. } => meta.span,
HandlerCondition::SqlException { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for IfStatement<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for ConditionalBranch<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for CaseStatement<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for LoopStatement<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for WhileStatement<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for RepeatStatement<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for LeaveStatement {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for IterateStatement {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for ReturnStatement<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for OpenCursorStatement {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for CloseCursorStatement {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for FetchCursorStatement {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for SignalStatement<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for SignalItem<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for GetDiagnosticsStatement<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for DiagnosticsInfo<X> {
fn span(&self) -> Span {
match self {
DiagnosticsInfo::Statement { meta, .. } => meta.span,
DiagnosticsInfo::Condition { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for StatementInfoItem<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for ConditionInfoItem<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for TransactionStatement {
fn span(&self) -> Span {
match self {
TransactionStatement::Begin { meta, .. } => meta.span,
TransactionStatement::Commit { meta, .. } => meta.span,
TransactionStatement::Rollback { meta, .. } => meta.span,
TransactionStatement::Savepoint { meta, .. } => meta.span,
TransactionStatement::Release { meta, .. } => meta.span,
TransactionStatement::SetCharacteristics { meta, .. } => meta.span,
}
}
}
impl Spanned for TransactionMode {
fn span(&self) -> Span {
match self {
TransactionMode::IsolationLevel { meta, .. } => meta.span,
TransactionMode::AccessMode { meta, .. } => meta.span,
TransactionMode::Deferrable { meta, .. } => meta.span,
TransactionMode::ConsistentSnapshot { meta, .. } => meta.span,
}
}
}
impl Spanned for XaStatement {
fn span(&self) -> Span {
match self {
XaStatement::Start { meta, .. } => meta.span,
XaStatement::End { meta, .. } => meta.span,
XaStatement::Prepare { meta, .. } => meta.span,
XaStatement::Commit { meta, .. } => meta.span,
XaStatement::Rollback { meta, .. } => meta.span,
XaStatement::Recover { meta, .. } => meta.span,
}
}
}
impl Spanned for Xid {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for DataType<X> {
fn span(&self) -> Span {
match self {
DataType::Boolean { meta, .. } => meta.span,
DataType::TinyInt { meta, .. } => meta.span,
DataType::SmallInt { meta, .. } => meta.span,
DataType::MediumInt { meta, .. } => meta.span,
DataType::Integer { meta, .. } => meta.span,
DataType::BigInt { meta, .. } => meta.span,
DataType::Decimal { meta, .. } => meta.span,
DataType::Float { meta, .. } => meta.span,
DataType::Real { meta, .. } => meta.span,
DataType::Double { meta, .. } => meta.span,
DataType::Text { meta, .. } => meta.span,
DataType::Blob { meta, .. } => meta.span,
DataType::Character { meta, .. } => meta.span,
DataType::Binary { meta, .. } => meta.span,
DataType::Bit { meta, .. } => meta.span,
DataType::Json { meta, .. } => meta.span,
DataType::Uuid { meta, .. } => meta.span,
DataType::Date { meta, .. } => meta.span,
DataType::Time { meta, .. } => meta.span,
DataType::Timestamp { meta, .. } => meta.span,
DataType::Interval { meta, .. } => meta.span,
DataType::Enum { meta, .. } => meta.span,
DataType::Set { meta, .. } => meta.span,
DataType::NumericModifier { meta, .. } => meta.span,
DataType::Array { meta, .. } => meta.span,
DataType::Struct { meta, .. } => meta.span,
DataType::Union { meta, .. } => meta.span,
DataType::Map { meta, .. } => meta.span,
DataType::Wrapped { meta, .. } => meta.span,
DataType::FixedString { meta, .. } => meta.span,
DataType::DateTime64 { meta, .. } => meta.span,
DataType::Nested { meta, .. } => meta.span,
DataType::FixedWidthInt { meta, .. } => meta.span,
DataType::UserDefined { meta, .. } => meta.span,
DataType::Liberal { meta, .. } => meta.span,
DataType::Other { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for StructTypeField<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for CharsetAnnotation {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for CopyStatement<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for CopySource<X> {
fn span(&self) -> Span {
match self {
CopySource::Table { meta, .. } => meta.span,
CopySource::Query { meta, .. } => meta.span,
}
}
}
impl Spanned for CopyTarget {
fn span(&self) -> Span {
match self {
CopyTarget::File { meta, .. } => meta.span,
CopyTarget::Stdin { meta, .. } => meta.span,
CopyTarget::Stdout { meta, .. } => meta.span,
CopyTarget::Program { meta, .. } => meta.span,
}
}
}
impl Spanned for CopyOption {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for CopyOptionValue {
fn span(&self) -> Span {
match self {
CopyOptionValue::Word { meta, .. } => meta.span,
CopyOptionValue::String { meta, .. } => meta.span,
CopyOptionValue::Number { meta, .. } => meta.span,
CopyOptionValue::Star { meta, .. } => meta.span,
CopyOptionValue::List { meta, .. } => meta.span,
CopyOptionValue::Force { meta, .. } => meta.span,
CopyOptionValue::OptionList { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for CopyIntoStatement<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for CopyIntoTarget {
fn span(&self) -> Span {
match self {
CopyIntoTarget::Table { meta, .. } => meta.span,
CopyIntoTarget::External { meta, .. } => meta.span,
CopyIntoTarget::Stage { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for CopyIntoSource<X> {
fn span(&self) -> Span {
match self {
CopyIntoSource::Table { meta, .. } => meta.span,
CopyIntoSource::External { meta, .. } => meta.span,
CopyIntoSource::Stage { meta, .. } => meta.span,
CopyIntoSource::Query { meta, .. } => meta.span,
}
}
}
impl Spanned for ExportStatement {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for ImportStatement {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for ExplainStatement<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for ExplainOption {
fn span(&self) -> Span {
match self {
ExplainOption::Analyze { meta, .. } => meta.span,
ExplainOption::Verbose { meta, .. } => meta.span,
ExplainOption::Format { meta, .. } => meta.span,
ExplainOption::Other { meta, .. } => meta.span,
}
}
}
impl Spanned for DescribeStatement {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for DescribeColumn {
fn span(&self) -> Span {
match self {
DescribeColumn::Name { meta, .. } => meta.span,
DescribeColumn::Wild { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for KillStatement<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for InstallStatement<X> {
fn span(&self) -> Span {
match self {
InstallStatement::Plugin { meta, .. } => meta.span,
InstallStatement::Component { meta, .. } => meta.span,
}
}
}
impl Spanned for UninstallStatement {
fn span(&self) -> Span {
match self {
UninstallStatement::Plugin { meta, .. } => meta.span,
UninstallStatement::Component { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for InstallComponentSetElement<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for InstallComponentSetValue<X> {
fn span(&self) -> Span {
match self {
InstallComponentSetValue::On { meta, .. } => meta.span,
InstallComponentSetValue::Expr { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for HandlerStatement<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for HandlerOperation<X> {
fn span(&self) -> Span {
match self {
HandlerOperation::Open { meta, .. } => meta.span,
HandlerOperation::Close { meta, .. } => meta.span,
HandlerOperation::Read { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for HandlerReadSelector<X> {
fn span(&self) -> Span {
match self {
HandlerReadSelector::Scan { meta, .. } => meta.span,
HandlerReadSelector::Index { meta, .. } => meta.span,
HandlerReadSelector::Key { meta, .. } => meta.span,
}
}
}
impl Spanned for CloneStatement {
fn span(&self) -> Span {
match self {
CloneStatement::Local { meta, .. } => meta.span,
CloneStatement::Instance { meta, .. } => meta.span,
}
}
}
impl Spanned for CloneDataDirectory {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for ImportTableStatement {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for HelpStatement {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for BinlogStatement {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for PragmaStatement {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for AttachStatement<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for DetachStatement {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for CheckpointStatement {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for LoadStatement {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for LoadTarget {
fn span(&self) -> Span {
match self {
LoadTarget::Name { meta, .. } => meta.span,
LoadTarget::Path { meta, .. } => meta.span,
}
}
}
impl Spanned for UpdateExtensionsStatement {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for VacuumStatement<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for ReindexStatement {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for AnalyzeStatement {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for TableMaintenanceStatement {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for TableMaintenanceKind {
fn span(&self) -> Span {
match self {
TableMaintenanceKind::Analyze { meta, .. } => meta.span,
TableMaintenanceKind::Check { meta, .. } => meta.span,
TableMaintenanceKind::Checksum { meta, .. } => meta.span,
TableMaintenanceKind::Optimize { meta, .. } => meta.span,
TableMaintenanceKind::Repair { meta, .. } => meta.span,
}
}
}
impl Spanned for AnalyzeHistogram {
fn span(&self) -> Span {
match self {
AnalyzeHistogram::Update { meta, .. } => meta.span,
AnalyzeHistogram::Drop { meta, .. } => meta.span,
}
}
}
impl Spanned for CacheIndexStatement {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for CacheIndexTargets {
fn span(&self) -> Span {
match self {
CacheIndexTargets::Tables { meta, .. } => meta.span,
CacheIndexTargets::Partition { meta, .. } => meta.span,
}
}
}
impl Spanned for CacheIndexTable {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for LoadIndexStatement {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for LoadIndexTargets {
fn span(&self) -> Span {
match self {
LoadIndexTargets::Tables { meta, .. } => meta.span,
LoadIndexTargets::Partition { meta, .. } => meta.span,
}
}
}
impl Spanned for LoadIndexTable {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for CacheIndexKeyList {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for KeyCacheName {
fn span(&self) -> Span {
match self {
KeyCacheName::Named { meta, .. } => meta.span,
KeyCacheName::Default { meta, .. } => meta.span,
}
}
}
impl Spanned for PartitionSelection {
fn span(&self) -> Span {
match self {
PartitionSelection::All { meta, .. } => meta.span,
PartitionSelection::Names { meta, .. } => meta.span,
}
}
}
impl Spanned for RenameStatement {
fn span(&self) -> Span {
match self {
RenameStatement::Table { meta, .. } => meta.span,
RenameStatement::User { meta, .. } => meta.span,
}
}
}
impl Spanned for TableRename {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for UserRename {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for AccountName {
fn span(&self) -> Span {
match self {
AccountName::Account { meta, .. } => meta.span,
AccountName::CurrentUser { meta, .. } => meta.span,
}
}
}
impl Spanned for FlushStatement {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for FlushTarget {
fn span(&self) -> Span {
match self {
FlushTarget::Tables { meta, .. } => meta.span,
FlushTarget::Options { meta, .. } => meta.span,
}
}
}
impl Spanned for FlushOption {
fn span(&self) -> Span {
match self {
FlushOption::Privileges { meta, .. } => meta.span,
FlushOption::Logs { meta, .. } => meta.span,
FlushOption::BinaryLogs { meta, .. } => meta.span,
FlushOption::EngineLogs { meta, .. } => meta.span,
FlushOption::ErrorLogs { meta, .. } => meta.span,
FlushOption::GeneralLogs { meta, .. } => meta.span,
FlushOption::SlowLogs { meta, .. } => meta.span,
FlushOption::RelayLogs { meta, .. } => meta.span,
FlushOption::Status { meta, .. } => meta.span,
FlushOption::UserResources { meta, .. } => meta.span,
FlushOption::OptimizerCosts { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for PurgeStatement<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for PurgeTarget<X> {
fn span(&self) -> Span {
match self {
PurgeTarget::To { meta, .. } => meta.span,
PurgeTarget::Before { meta, .. } => meta.span,
}
}
}
impl Spanned for UseStatement {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for PrepareStatement<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for PrepareFromStatement {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for PrepareSource {
fn span(&self) -> Span {
match self {
PrepareSource::Text { meta, .. } => meta.span,
PrepareSource::Variable { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for ExecuteStatement<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for ExecuteUsingStatement {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for CallStatement<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for DeallocateStatement {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for DoStatement {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for DoArg {
fn span(&self) -> Span {
match self {
DoArg::Body { meta, .. } => meta.span,
DoArg::Language { meta, .. } => meta.span,
}
}
}
impl Spanned for LanguageName {
fn span(&self) -> Span {
match self {
LanguageName::Word { meta, .. } => meta.span,
LanguageName::String { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for DoExpressionsStatement<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for LockTablesStatement {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for TableLock {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for UnlockTablesStatement {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for InstanceLockStatement {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for LoadDataStatement<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for LoadDataFields {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for LoadDataEnclosed {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for LoadDataLines {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for LoadDataIgnoreRows {
fn span(&self) -> Span {
self.meta.span
}
}
impl Spanned for LoadDataFieldOrVar {
fn span(&self) -> Span {
match self {
LoadDataFieldOrVar::Column { meta, .. } => meta.span,
LoadDataFieldOrVar::Variable { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for ShowStatement<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for ShowTarget<X> {
fn span(&self) -> Span {
match self {
ShowTarget::Tables { meta, .. } => meta.span,
ShowTarget::Columns { meta, .. } => meta.span,
ShowTarget::Create { meta, .. } => meta.span,
ShowTarget::Functions { meta, .. } => meta.span,
ShowTarget::RoutineStatus { meta, .. } => meta.span,
ShowTarget::Listing { meta, .. } => meta.span,
ShowTarget::Bare { meta, .. } => meta.span,
ShowTarget::Grants { meta, .. } => meta.span,
ShowTarget::CreateUser { meta, .. } => meta.span,
ShowTarget::Profile { meta, .. } => meta.span,
ShowTarget::LogEvents { meta, .. } => meta.span,
ShowTarget::Index { meta, .. } => meta.span,
ShowTarget::Engine { meta, .. } => meta.span,
ShowTarget::ReplicaStatus { meta, .. } => meta.span,
ShowTarget::Diagnostics { meta, .. } => meta.span,
ShowTarget::RoutineCode { meta, .. } => meta.span,
}
}
}
impl Spanned for ShowFunctionsFilter {
fn span(&self) -> Span {
match self {
ShowFunctionsFilter::Name { meta, .. } => meta.span,
ShowFunctionsFilter::Regex { meta, .. } => meta.span,
}
}
}
impl Spanned for ShowFrom {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for ShowFilter<X> {
fn span(&self) -> Span {
match self {
ShowFilter::Like { meta, .. } => meta.span,
ShowFilter::Where { meta, .. } => meta.span,
}
}
}
impl Spanned for ShowLimit {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for WindowSpec<X> {
fn span(&self) -> Span {
match self {
WindowSpec::Named { meta, .. } => meta.span,
WindowSpec::Inline { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for WindowDefinition<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for WindowFrame<X> {
fn span(&self) -> Span {
self.meta.span
}
}
impl<X: Extension> Spanned for WindowFrameBound<X> {
fn span(&self) -> Span {
match self {
WindowFrameBound::CurrentRow { meta, .. } => meta.span,
WindowFrameBound::UnboundedPreceding { meta, .. } => meta.span,
WindowFrameBound::UnboundedFollowing { meta, .. } => meta.span,
WindowFrameBound::Preceding { meta, .. } => meta.span,
WindowFrameBound::Following { meta, .. } => meta.span,
}
}
}
impl<X: Extension> Spanned for NamedWindow<X> {
fn span(&self) -> Span {
self.meta.span
}
}