Skip to content

Commit c57fb5b

Browse files
committed
fix: close delimiter gaps left by concat merges and dedupe re-exports
PRs #14, #15, and #16 each added new AST types that collide in the same places in src/ast/ddl.rs, src/ast/mod.rs, src/parser/mod.rs, and tests/sqlparser_postgres.rs. Several mid-match-arm and mid-function-body concat resolutions during the three rebase-and-merge passes left fn / impl / match blocks missing their closing braces and left the ddl re-export list with duplicate entries. This restores compile: - Adds missing closing braces for CastFunctionKind, StatisticsKind, CreateRule / CreateStatistics / CreateEventTrigger / CreateTransform / CreateLanguage Display impls and parse fns, plus the CreateTransform From-to-Statement impl. - Dedupes and alphabetizes the `pub use self::ddl::{ ... }` list in src/ast/mod.rs. - Adds missing doc comments on CastFunctionKind fields and RuleEvent variants that #[warn(missing_docs)] requires. Unblocks 0.60.10 publish.
1 parent d904291 commit c57fb5b

3 files changed

Lines changed: 71 additions & 38 deletions

File tree

src/ast/ddl.rs

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6522,7 +6522,10 @@ impl From<CreateSubscription> for crate::ast::Statement {
65226522
pub enum CastFunctionKind {
65236523
/// `WITH FUNCTION function_name(arg_types)`
65246524
WithFunction {
6525+
/// The name of the cast implementation function.
65256526
function_name: ObjectName,
6527+
/// Optional argument type list. Empty if the function has no arguments
6528+
/// declared in the `CREATE CAST` clause.
65266529
argument_types: Vec<DataType>,
65276530
},
65286531
/// `WITHOUT FUNCTION`
@@ -6546,6 +6549,10 @@ impl fmt::Display for CastFunctionKind {
65466549
}
65476550
CastFunctionKind::WithoutFunction => write!(f, "WITHOUT FUNCTION"),
65486551
CastFunctionKind::WithInout => write!(f, "WITH INOUT"),
6552+
}
6553+
}
6554+
}
6555+
65496556
/// A kind of extended statistics collected by `CREATE STATISTICS`.
65506557
///
65516558
/// Note: this is a PostgreSQL-specific concept.
@@ -6568,6 +6575,10 @@ impl fmt::Display for StatisticsKind {
65686575
StatisticsKind::NDistinct => write!(f, "ndistinct"),
65696576
StatisticsKind::Dependencies => write!(f, "dependencies"),
65706577
StatisticsKind::Mcv => write!(f, "mcv"),
6578+
}
6579+
}
6580+
}
6581+
65716582
/// The object kind targeted by a `SECURITY LABEL` statement.
65726583
///
65736584
/// See <https://www.postgresql.org/docs/current/sql-securitylabel.html>
@@ -6767,6 +6778,11 @@ impl fmt::Display for CreateLanguage {
67676778
}
67686779
if let Some(validator) = &self.validator {
67696780
write!(f, " VALIDATOR {validator}")?;
6781+
}
6782+
Ok(())
6783+
}
6784+
}
6785+
67706786
/// A `CREATE STATISTICS` statement.
67716787
///
67726788
/// Note: this is a PostgreSQL-specific statement.
@@ -6799,6 +6815,10 @@ impl fmt::Display for CreateStatistics {
67996815
}
68006816
write!(f, " ON {}", display_comma_separated(&self.on))?;
68016817
write!(f, " FROM {}", self.from)?;
6818+
Ok(())
6819+
}
6820+
}
6821+
68026822
/// A `SECURITY LABEL` statement.
68036823
///
68046824
/// Note: this is a PostgreSQL-specific statement.
@@ -6918,9 +6938,13 @@ impl From<CreateLanguage> for crate::ast::Statement {
69186938
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
69196939
#[cfg_attr(feature = "visitor", derive(Visit, VisitMut))]
69206940
pub enum RuleEvent {
6941+
/// `ON SELECT` rule.
69216942
Select,
6943+
/// `ON INSERT` rule.
69226944
Insert,
6945+
/// `ON UPDATE` rule.
69236946
Update,
6947+
/// `ON DELETE` rule.
69246948
Delete,
69256949
}
69266950

@@ -6931,6 +6955,10 @@ impl fmt::Display for RuleEvent {
69316955
RuleEvent::Insert => write!(f, "INSERT"),
69326956
RuleEvent::Update => write!(f, "UPDATE"),
69336957
RuleEvent::Delete => write!(f, "DELETE"),
6958+
}
6959+
}
6960+
}
6961+
69346962
impl From<CreateStatistics> for crate::ast::Statement {
69356963
fn from(v: CreateStatistics) -> Self {
69366964
crate::ast::Statement::CreateStatistics(v)
@@ -7042,6 +7070,9 @@ impl fmt::Display for CreateRule {
70427070
impl From<CreateRule> for crate::ast::Statement {
70437071
fn from(v: CreateRule) -> Self {
70447072
crate::ast::Statement::CreateRule(v)
7073+
}
7074+
}
7075+
70457076
/// A `CREATE ACCESS METHOD` statement.
70467077
///
70477078
/// Note: this is a PostgreSQL-specific statement.
@@ -7137,6 +7168,10 @@ impl fmt::Display for CreateEventTrigger {
71377168
"FUNCTION"
71387169
};
71397170
write!(f, " EXECUTE {func_kw} {}()", self.execute)?;
7171+
Ok(())
7172+
}
7173+
}
7174+
71407175
impl From<CreateUserMapping> for crate::ast::Statement {
71417176
fn from(v: CreateUserMapping) -> Self {
71427177
crate::ast::Statement::CreateUserMapping(v)
@@ -7248,6 +7283,9 @@ impl fmt::Display for CreateTransform {
72487283
impl From<CreateTransform> for crate::ast::Statement {
72497284
fn from(v: CreateTransform) -> Self {
72507285
crate::ast::Statement::CreateTransform(v)
7286+
}
7287+
}
7288+
72517289
impl From<CreateTablespace> for crate::ast::Statement {
72527290
fn from(v: CreateTablespace) -> Self {
72537291
crate::ast::Statement::CreateTablespace(v)

src/ast/mod.rs

Lines changed: 30 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -60,45 +60,37 @@ pub use self::dcl::{
6060
SetConfigValue, Use,
6161
};
6262
pub use self::ddl::{
63-
Alignment, AlterCollation, AlterCollationOperation, AlterColumnOperation, AlterConnectorOwner,
64-
AlterDomain, AlterDomainOperation, AlterExtension, AlterExtensionOperation,
65-
AlterFunction, AlterFunctionAction, AlterFunctionKind, AlterFunctionOperation,
66-
AlterIndexOperation, AlterOperator, AlterOperatorClass, AlterOperatorClassOperation,
67-
AlterOperatorFamily, AlterOperatorFamilyOperation, AlterOperatorOperation, AlterPolicy,
68-
AlterPolicyOperation, AlterSchema, AlterSchemaOperation, AlterTable, AlterTableAlgorithm,
69-
AlterTableLock, AlterTableOperation, AlterTableType, AlterTrigger, AlterTriggerOperation,
70-
AlterType, AlterTypeAddValue,
71-
AlterTypeAddValuePosition, AlterTypeOperation, AlterTypeRename, AlterTypeRenameValue,
72-
AggregateModifyKind, CastContext, CastFunctionKind, ClusteredBy, ColumnDef, ColumnOption,
73-
ColumnOptionDef, ColumnOptions,
74-
ColumnPolicy, ColumnPolicyProperty, ConstraintCharacteristics, CreateAggregate,
63+
AccessMethodType, AggregateModifyKind, Alignment, AlterCollation, AlterCollationOperation,
64+
AlterColumnOperation, AlterConnectorOwner, AlterDomain, AlterDomainOperation, AlterExtension,
65+
AlterExtensionOperation, AlterFunction, AlterFunctionAction, AlterFunctionKind,
66+
AlterFunctionOperation, AlterIndexOperation, AlterOperator, AlterOperatorClass,
67+
AlterOperatorClassOperation, AlterOperatorFamily, AlterOperatorFamilyOperation,
68+
AlterOperatorOperation, AlterPolicy, AlterPolicyOperation, AlterSchema, AlterSchemaOperation,
69+
AlterTable, AlterTableAlgorithm, AlterTableLock, AlterTableOperation, AlterTableType,
70+
AlterTrigger, AlterTriggerOperation, AlterType, AlterTypeAddValue, AlterTypeAddValuePosition,
71+
AlterTypeOperation, AlterTypeRename, AlterTypeRenameValue, CastContext, CastFunctionKind,
72+
ClusteredBy, ColumnDef, ColumnOption, ColumnOptionDef, ColumnOptions, ColumnPolicy,
73+
ColumnPolicyProperty, ConstraintCharacteristics, CreateAccessMethod, CreateAggregate,
7574
CreateAggregateOption, CreateCast, CreateCollation, CreateCollationDefinition, CreateConnector,
76-
CreateConversion, CreateDomain, CreateExtension, CreateForeignDataWrapper, CreateForeignTable,
77-
CreateFunction, CreateIndex, CreateLanguage, CreateOperator, CreateOperatorClass,
78-
CreateOperatorFamily, CreatePolicy, CreatePolicyCommand, CreatePolicyType, CreatePublication,
79-
CreateRule, CreateSubscription, CreateTable,
80-
CreateTextSearchConfiguration, CreateTextSearchDictionary, CreateTextSearchParser,
81-
CreateTextSearchTemplate, CreateTrigger, PublicationTarget, RuleAction, RuleEvent,
82-
CreateAggregateOption, CreateCollation, CreateCollationDefinition, CreateConnector,
83-
CreateDomain, CreateExtension, CreateForeignDataWrapper, CreateForeignTable, CreateFunction,
84-
CreateIndex, CreateOperator, CreateOperatorClass, CreateOperatorFamily, CreatePolicy,
85-
CreatePolicyCommand, CreatePolicyType, CreatePublication, CreateSubscription, CreateTable,
86-
AccessMethodType, CreateAccessMethod, CreateEventTrigger, CreateStatistics, CreateTablespace,
87-
CreateTextSearchConfiguration, CreateTextSearchDictionary, CreateTextSearchParser,
88-
CreateTextSearchTemplate, CreateTransform, CreateTrigger, CreateUserMapping,
89-
EventTriggerEvent, PublicationTarget, SecurityLabel, SecurityLabelObjectKind, StatisticsKind,
90-
TransformElement, UserMappingUser,
91-
CreateView, Deduplicate, DeferrableInitial, DistStyle, DropBehavior, DropExtension,
92-
DropFunction, DropOperator, DropOperatorClass, DropOperatorFamily, DropOperatorSignature,
93-
DropPolicy, DropTrigger, FdwRoutineClause, ForValues, FunctionReturnType, GeneratedAs,
94-
GeneratedExpressionMode, IdentityParameters, IdentityProperty, IdentityPropertyFormatKind,
95-
IdentityPropertyKind, IdentityPropertyOrder, IndexColumn, IndexOption, IndexType,
96-
KeyOrIndexDisplay, Msck, NullsDistinctOption, OperatorArgTypes, OperatorClassItem,
97-
OperatorFamilyDropItem, OperatorFamilyItem, OperatorOption, OperatorPurpose, Owner, Partition,
98-
PartitionBoundValue, ProcedureParam, ReferentialAction, RenameTableNameKind, ReplicaIdentity,
99-
TagsColumnOption, TriggerObjectKind, Truncate, UserDefinedTypeCompositeAttributeDef,
100-
UserDefinedTypeInternalLength, UserDefinedTypeRangeOption, UserDefinedTypeRepresentation,
101-
UserDefinedTypeSqlDefinitionOption, UserDefinedTypeStorage, ViewColumnDef,
75+
CreateConversion, CreateDomain, CreateEventTrigger, CreateExtension, CreateForeignDataWrapper,
76+
CreateForeignTable, CreateFunction, CreateIndex, CreateLanguage, CreateOperator,
77+
CreateOperatorClass, CreateOperatorFamily, CreatePolicy, CreatePolicyCommand, CreatePolicyType,
78+
CreatePublication, CreateRule, CreateStatistics, CreateSubscription, CreateTable,
79+
CreateTablespace, CreateTextSearchConfiguration, CreateTextSearchDictionary,
80+
CreateTextSearchParser, CreateTextSearchTemplate, CreateTransform, CreateTrigger,
81+
CreateUserMapping, CreateView, Deduplicate, DeferrableInitial, DistStyle, DropBehavior,
82+
DropExtension, DropFunction, DropOperator, DropOperatorClass, DropOperatorFamily,
83+
DropOperatorSignature, DropPolicy, DropTrigger, EventTriggerEvent, FdwRoutineClause, ForValues,
84+
FunctionReturnType, GeneratedAs, GeneratedExpressionMode, IdentityParameters, IdentityProperty,
85+
IdentityPropertyFormatKind, IdentityPropertyKind, IdentityPropertyOrder, IndexColumn,
86+
IndexOption, IndexType, KeyOrIndexDisplay, Msck, NullsDistinctOption, OperatorArgTypes,
87+
OperatorClassItem, OperatorFamilyDropItem, OperatorFamilyItem, OperatorOption, OperatorPurpose,
88+
Owner, Partition, PartitionBoundValue, ProcedureParam, PublicationTarget, ReferentialAction,
89+
RenameTableNameKind, ReplicaIdentity, RuleAction, RuleEvent, SecurityLabel,
90+
SecurityLabelObjectKind, StatisticsKind, TagsColumnOption, TransformElement, TriggerObjectKind,
91+
Truncate, UserDefinedTypeCompositeAttributeDef, UserDefinedTypeInternalLength,
92+
UserDefinedTypeRangeOption, UserDefinedTypeRepresentation, UserDefinedTypeSqlDefinitionOption,
93+
UserDefinedTypeStorage, UserMappingUser, ViewColumnDef
10294
};
10395
pub use self::dml::{
10496
Delete, Insert, Merge, MergeAction, MergeClause, MergeClauseKind, MergeInsertExpr,

src/parser/mod.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20501,6 +20501,9 @@ impl<'a> Parser<'a> {
2050120501
condition,
2050220502
instead,
2050320503
action,
20504+
})
20505+
}
20506+
2050420507
/// Parse a `CREATE STATISTICS` statement.
2050520508
///
2050620509
/// See <https://www.postgresql.org/docs/current/sql-createstatistics.html>

0 commit comments

Comments
 (0)