pub enum Expression {
Show 912 variants
Literal(Literal),
Boolean(BooleanLiteral),
Null(Null),
Identifier(Identifier),
Column(Column),
Table(TableRef),
Star(Star),
BracedWildcard(Box<Expression>),
Select(Box<Select>),
Union(Box<Union>),
Intersect(Box<Intersect>),
Except(Box<Except>),
Subquery(Box<Subquery>),
Pivot(Box<Pivot>),
PivotAlias(Box<PivotAlias>),
Unpivot(Box<Unpivot>),
Values(Box<Values>),
PreWhere(Box<PreWhere>),
Stream(Box<Stream>),
UsingData(Box<UsingData>),
XmlNamespace(Box<XmlNamespace>),
Insert(Box<Insert>),
Update(Box<Update>),
Delete(Box<Delete>),
Copy(Box<CopyStmt>),
Put(Box<PutStmt>),
StageReference(Box<StageReference>),
Alias(Box<Alias>),
Cast(Box<Cast>),
Collation(Box<CollationExpr>),
Case(Box<Case>),
And(Box<BinaryOp>),
Or(Box<BinaryOp>),
Add(Box<BinaryOp>),
Sub(Box<BinaryOp>),
Mul(Box<BinaryOp>),
Div(Box<BinaryOp>),
Mod(Box<BinaryOp>),
Eq(Box<BinaryOp>),
Neq(Box<BinaryOp>),
Lt(Box<BinaryOp>),
Lte(Box<BinaryOp>),
Gt(Box<BinaryOp>),
Gte(Box<BinaryOp>),
Like(Box<LikeOp>),
ILike(Box<LikeOp>),
Match(Box<BinaryOp>),
BitwiseAnd(Box<BinaryOp>),
BitwiseOr(Box<BinaryOp>),
BitwiseXor(Box<BinaryOp>),
Concat(Box<BinaryOp>),
Adjacent(Box<BinaryOp>),
TsMatch(Box<BinaryOp>),
PropertyEQ(Box<BinaryOp>),
ArrayContainsAll(Box<BinaryOp>),
ArrayContainedBy(Box<BinaryOp>),
ArrayOverlaps(Box<BinaryOp>),
JSONBContainsAllTopKeys(Box<BinaryOp>),
JSONBContainsAnyTopKeys(Box<BinaryOp>),
JSONBDeleteAtPath(Box<BinaryOp>),
ExtendsLeft(Box<BinaryOp>),
ExtendsRight(Box<BinaryOp>),
Not(Box<UnaryOp>),
Neg(Box<UnaryOp>),
BitwiseNot(Box<UnaryOp>),
In(Box<In>),
Between(Box<Between>),
IsNull(Box<IsNull>),
IsTrue(Box<IsTrueFalse>),
IsFalse(Box<IsTrueFalse>),
IsJson(Box<IsJson>),
Is(Box<BinaryOp>),
Exists(Box<Exists>),
MemberOf(Box<BinaryOp>),
Function(Box<Function>),
AggregateFunction(Box<AggregateFunction>),
WindowFunction(Box<WindowFunction>),
From(Box<From>),
Join(Box<Join>),
JoinedTable(Box<JoinedTable>),
Where(Box<Where>),
GroupBy(Box<GroupBy>),
Having(Box<Having>),
OrderBy(Box<OrderBy>),
Limit(Box<Limit>),
Offset(Box<Offset>),
Qualify(Box<Qualify>),
With(Box<With>),
Cte(Box<Cte>),
DistributeBy(Box<DistributeBy>),
ClusterBy(Box<ClusterBy>),
SortBy(Box<SortBy>),
LateralView(Box<LateralView>),
Hint(Box<Hint>),
Pseudocolumn(Pseudocolumn),
Connect(Box<Connect>),
Prior(Box<Prior>),
ConnectByRoot(Box<ConnectByRoot>),
MatchRecognize(Box<MatchRecognize>),
Ordered(Box<Ordered>),
Window(Box<WindowSpec>),
Over(Box<Over>),
WithinGroup(Box<WithinGroup>),
DataType(DataType),
Array(Box<Array>),
Struct(Box<Struct>),
Tuple(Box<Tuple>),
Interval(Box<Interval>),
ConcatWs(Box<ConcatWs>),
Substring(Box<SubstringFunc>),
Upper(Box<UnaryFunc>),
Lower(Box<UnaryFunc>),
Length(Box<UnaryFunc>),
Trim(Box<TrimFunc>),
LTrim(Box<UnaryFunc>),
RTrim(Box<UnaryFunc>),
Replace(Box<ReplaceFunc>),
Reverse(Box<UnaryFunc>),
Left(Box<LeftRightFunc>),
Right(Box<LeftRightFunc>),
Repeat(Box<RepeatFunc>),
Lpad(Box<PadFunc>),
Rpad(Box<PadFunc>),
Split(Box<SplitFunc>),
RegexpLike(Box<RegexpFunc>),
RegexpReplace(Box<RegexpReplaceFunc>),
RegexpExtract(Box<RegexpExtractFunc>),
Overlay(Box<OverlayFunc>),
Abs(Box<UnaryFunc>),
Round(Box<RoundFunc>),
Floor(Box<FloorFunc>),
Ceil(Box<CeilFunc>),
Power(Box<BinaryFunc>),
Sqrt(Box<UnaryFunc>),
Cbrt(Box<UnaryFunc>),
Ln(Box<UnaryFunc>),
Log(Box<LogFunc>),
Exp(Box<UnaryFunc>),
Sign(Box<UnaryFunc>),
Greatest(Box<VarArgFunc>),
Least(Box<VarArgFunc>),
CurrentDate(CurrentDate),
CurrentTime(CurrentTime),
CurrentTimestamp(CurrentTimestamp),
CurrentTimestampLTZ(CurrentTimestampLTZ),
AtTimeZone(Box<AtTimeZone>),
DateAdd(Box<DateAddFunc>),
DateSub(Box<DateAddFunc>),
DateDiff(Box<DateDiffFunc>),
DateTrunc(Box<DateTruncFunc>),
Extract(Box<ExtractFunc>),
ToDate(Box<ToDateFunc>),
ToTimestamp(Box<ToTimestampFunc>),
Date(Box<UnaryFunc>),
Time(Box<UnaryFunc>),
DateFromUnixDate(Box<UnaryFunc>),
UnixDate(Box<UnaryFunc>),
UnixSeconds(Box<UnaryFunc>),
UnixMillis(Box<UnaryFunc>),
UnixMicros(Box<UnaryFunc>),
UnixToTimeStr(Box<BinaryFunc>),
TimeStrToDate(Box<UnaryFunc>),
DateToDi(Box<UnaryFunc>),
DiToDate(Box<UnaryFunc>),
TsOrDiToDi(Box<UnaryFunc>),
TsOrDsToDatetime(Box<UnaryFunc>),
TsOrDsToTimestamp(Box<UnaryFunc>),
YearOfWeek(Box<UnaryFunc>),
YearOfWeekIso(Box<UnaryFunc>),
Coalesce(Box<VarArgFunc>),
NullIf(Box<BinaryFunc>),
IfFunc(Box<IfFunc>),
IfNull(Box<BinaryFunc>),
Nvl(Box<BinaryFunc>),
Nvl2(Box<Nvl2Func>),
TryCast(Box<Cast>),
SafeCast(Box<Cast>),
Count(Box<CountFunc>),
Sum(Box<AggFunc>),
Avg(Box<AggFunc>),
Min(Box<AggFunc>),
Max(Box<AggFunc>),
GroupConcat(Box<GroupConcatFunc>),
StringAgg(Box<StringAggFunc>),
ListAgg(Box<ListAggFunc>),
ArrayAgg(Box<AggFunc>),
CountIf(Box<AggFunc>),
SumIf(Box<SumIfFunc>),
Stddev(Box<AggFunc>),
StddevPop(Box<AggFunc>),
StddevSamp(Box<AggFunc>),
Variance(Box<AggFunc>),
VarPop(Box<AggFunc>),
VarSamp(Box<AggFunc>),
Median(Box<AggFunc>),
Mode(Box<AggFunc>),
First(Box<AggFunc>),
Last(Box<AggFunc>),
AnyValue(Box<AggFunc>),
ApproxDistinct(Box<AggFunc>),
ApproxCountDistinct(Box<AggFunc>),
ApproxPercentile(Box<ApproxPercentileFunc>),
Percentile(Box<PercentileFunc>),
LogicalAnd(Box<AggFunc>),
LogicalOr(Box<AggFunc>),
Skewness(Box<AggFunc>),
BitwiseCount(Box<UnaryFunc>),
ArrayConcatAgg(Box<AggFunc>),
ArrayUniqueAgg(Box<AggFunc>),
BoolXorAgg(Box<AggFunc>),
RowNumber(RowNumber),
Rank(Rank),
DenseRank(DenseRank),
NTile(Box<NTileFunc>),
Lead(Box<LeadLagFunc>),
Lag(Box<LeadLagFunc>),
FirstValue(Box<ValueFunc>),
LastValue(Box<ValueFunc>),
NthValue(Box<NthValueFunc>),
PercentRank(PercentRank),
CumeDist(CumeDist),
PercentileCont(Box<PercentileFunc>),
PercentileDisc(Box<PercentileFunc>),
Contains(Box<BinaryFunc>),
StartsWith(Box<BinaryFunc>),
EndsWith(Box<BinaryFunc>),
Position(Box<PositionFunc>),
Initcap(Box<UnaryFunc>),
Ascii(Box<UnaryFunc>),
Chr(Box<UnaryFunc>),
CharFunc(Box<CharFunc>),
Soundex(Box<UnaryFunc>),
Levenshtein(Box<BinaryFunc>),
ByteLength(Box<UnaryFunc>),
Hex(Box<UnaryFunc>),
LowerHex(Box<UnaryFunc>),
Unicode(Box<UnaryFunc>),
ModFunc(Box<BinaryFunc>),
Random(Random),
Rand(Box<Rand>),
TruncFunc(Box<TruncateFunc>),
Pi(Pi),
Radians(Box<UnaryFunc>),
Degrees(Box<UnaryFunc>),
Sin(Box<UnaryFunc>),
Cos(Box<UnaryFunc>),
Tan(Box<UnaryFunc>),
Asin(Box<UnaryFunc>),
Acos(Box<UnaryFunc>),
Atan(Box<UnaryFunc>),
Atan2(Box<BinaryFunc>),
IsNan(Box<UnaryFunc>),
IsInf(Box<UnaryFunc>),
IntDiv(Box<BinaryFunc>),
Decode(Box<DecodeFunc>),
DateFormat(Box<DateFormatFunc>),
FormatDate(Box<DateFormatFunc>),
Year(Box<UnaryFunc>),
Month(Box<UnaryFunc>),
Day(Box<UnaryFunc>),
Hour(Box<UnaryFunc>),
Minute(Box<UnaryFunc>),
Second(Box<UnaryFunc>),
DayOfWeek(Box<UnaryFunc>),
DayOfWeekIso(Box<UnaryFunc>),
DayOfMonth(Box<UnaryFunc>),
DayOfYear(Box<UnaryFunc>),
WeekOfYear(Box<UnaryFunc>),
Quarter(Box<UnaryFunc>),
AddMonths(Box<BinaryFunc>),
MonthsBetween(Box<BinaryFunc>),
LastDay(Box<LastDayFunc>),
NextDay(Box<BinaryFunc>),
Epoch(Box<UnaryFunc>),
EpochMs(Box<UnaryFunc>),
FromUnixtime(Box<FromUnixtimeFunc>),
UnixTimestamp(Box<UnixTimestampFunc>),
MakeDate(Box<MakeDateFunc>),
MakeTimestamp(Box<MakeTimestampFunc>),
TimestampTrunc(Box<DateTruncFunc>),
TimeStrToUnix(Box<UnaryFunc>),
SessionUser(SessionUser),
SHA(Box<UnaryFunc>),
SHA1Digest(Box<UnaryFunc>),
TimeToUnix(Box<UnaryFunc>),
ArrayFunc(Box<ArrayConstructor>),
ArrayLength(Box<UnaryFunc>),
ArraySize(Box<UnaryFunc>),
Cardinality(Box<UnaryFunc>),
ArrayContains(Box<BinaryFunc>),
ArrayPosition(Box<BinaryFunc>),
ArrayAppend(Box<BinaryFunc>),
ArrayPrepend(Box<BinaryFunc>),
ArrayConcat(Box<VarArgFunc>),
ArraySort(Box<ArraySortFunc>),
ArrayReverse(Box<UnaryFunc>),
ArrayDistinct(Box<UnaryFunc>),
ArrayJoin(Box<ArrayJoinFunc>),
ArrayToString(Box<ArrayJoinFunc>),
Unnest(Box<UnnestFunc>),
Explode(Box<UnaryFunc>),
ExplodeOuter(Box<UnaryFunc>),
ArrayFilter(Box<ArrayFilterFunc>),
ArrayTransform(Box<ArrayTransformFunc>),
ArrayFlatten(Box<UnaryFunc>),
ArrayCompact(Box<UnaryFunc>),
ArrayIntersect(Box<BinaryFunc>),
ArrayUnion(Box<BinaryFunc>),
ArrayExcept(Box<BinaryFunc>),
ArrayRemove(Box<BinaryFunc>),
ArrayZip(Box<VarArgFunc>),
Sequence(Box<SequenceFunc>),
Generate(Box<SequenceFunc>),
ExplodingGenerateSeries(Box<SequenceFunc>),
ToArray(Box<UnaryFunc>),
StarMap(Box<BinaryFunc>),
StructFunc(Box<StructConstructor>),
StructExtract(Box<StructExtractFunc>),
NamedStruct(Box<NamedStructFunc>),
MapFunc(Box<MapConstructor>),
MapFromEntries(Box<UnaryFunc>),
MapFromArrays(Box<BinaryFunc>),
MapKeys(Box<UnaryFunc>),
MapValues(Box<UnaryFunc>),
MapContainsKey(Box<BinaryFunc>),
MapConcat(Box<VarArgFunc>),
ElementAt(Box<BinaryFunc>),
TransformKeys(Box<TransformFunc>),
TransformValues(Box<TransformFunc>),
JsonExtract(Box<JsonExtractFunc>),
JsonExtractScalar(Box<JsonExtractFunc>),
JsonExtractPath(Box<JsonPathFunc>),
JsonArray(Box<VarArgFunc>),
JsonObject(Box<JsonObjectFunc>),
JsonQuery(Box<JsonExtractFunc>),
JsonValue(Box<JsonExtractFunc>),
JsonArrayLength(Box<UnaryFunc>),
JsonKeys(Box<UnaryFunc>),
JsonType(Box<UnaryFunc>),
ParseJson(Box<UnaryFunc>),
ToJson(Box<UnaryFunc>),
JsonSet(Box<JsonModifyFunc>),
JsonInsert(Box<JsonModifyFunc>),
JsonRemove(Box<JsonPathFunc>),
JsonMergePatch(Box<BinaryFunc>),
JsonArrayAgg(Box<JsonArrayAggFunc>),
JsonObjectAgg(Box<JsonObjectAggFunc>),
Convert(Box<ConvertFunc>),
Typeof(Box<UnaryFunc>),
Lambda(Box<LambdaExpr>),
Parameter(Box<Parameter>),
Placeholder(Placeholder),
NamedArgument(Box<NamedArgument>),
TableArgument(Box<TableArgument>),
SqlComment(Box<SqlComment>),
NullSafeEq(Box<BinaryOp>),
NullSafeNeq(Box<BinaryOp>),
Glob(Box<BinaryOp>),
SimilarTo(Box<SimilarToExpr>),
Any(Box<QuantifiedExpr>),
All(Box<QuantifiedExpr>),
Overlaps(Box<OverlapsExpr>),
BitwiseLeftShift(Box<BinaryOp>),
BitwiseRightShift(Box<BinaryOp>),
BitwiseAndAgg(Box<AggFunc>),
BitwiseOrAgg(Box<AggFunc>),
BitwiseXorAgg(Box<AggFunc>),
Subscript(Box<Subscript>),
Dot(Box<DotAccess>),
MethodCall(Box<MethodCall>),
ArraySlice(Box<ArraySlice>),
CreateTable(Box<CreateTable>),
DropTable(Box<DropTable>),
AlterTable(Box<AlterTable>),
CreateIndex(Box<CreateIndex>),
DropIndex(Box<DropIndex>),
CreateView(Box<CreateView>),
DropView(Box<DropView>),
AlterView(Box<AlterView>),
AlterIndex(Box<AlterIndex>),
Truncate(Box<Truncate>),
Use(Box<Use>),
Cache(Box<Cache>),
Uncache(Box<Uncache>),
LoadData(Box<LoadData>),
Pragma(Box<Pragma>),
Grant(Box<Grant>),
Revoke(Box<Revoke>),
Comment(Box<Comment>),
SetStatement(Box<SetStatement>),
CreateSchema(Box<CreateSchema>),
DropSchema(Box<DropSchema>),
DropNamespace(Box<DropNamespace>),
CreateDatabase(Box<CreateDatabase>),
DropDatabase(Box<DropDatabase>),
CreateFunction(Box<CreateFunction>),
DropFunction(Box<DropFunction>),
CreateProcedure(Box<CreateProcedure>),
DropProcedure(Box<DropProcedure>),
CreateSequence(Box<CreateSequence>),
DropSequence(Box<DropSequence>),
AlterSequence(Box<AlterSequence>),
CreateTrigger(Box<CreateTrigger>),
DropTrigger(Box<DropTrigger>),
CreateType(Box<CreateType>),
DropType(Box<DropType>),
Describe(Box<Describe>),
Show(Box<Show>),
Command(Box<Command>),
Kill(Box<Kill>),
Execute(Box<ExecuteStatement>),
Raw(Raw),
Paren(Box<Paren>),
Annotated(Box<Annotated>),
Refresh(Box<Refresh>),
LockingStatement(Box<LockingStatement>),
SequenceProperties(Box<SequenceProperties>),
TruncateTable(Box<TruncateTable>),
Clone(Box<Clone>),
Attach(Box<Attach>),
Detach(Box<Detach>),
Install(Box<Install>),
Summarize(Box<Summarize>),
Declare(Box<Declare>),
DeclareItem(Box<DeclareItem>),
Set(Box<Set>),
Heredoc(Box<Heredoc>),
SetItem(Box<SetItem>),
QueryBand(Box<QueryBand>),
UserDefinedFunction(Box<UserDefinedFunction>),
RecursiveWithSearch(Box<RecursiveWithSearch>),
ProjectionDef(Box<ProjectionDef>),
TableAlias(Box<TableAlias>),
ByteString(Box<ByteString>),
HexStringExpr(Box<HexStringExpr>),
UnicodeString(Box<UnicodeString>),
ColumnPosition(Box<ColumnPosition>),
ColumnDef(Box<ColumnDef>),
AlterColumn(Box<AlterColumn>),
AlterSortKey(Box<AlterSortKey>),
AlterSet(Box<AlterSet>),
RenameColumn(Box<RenameColumn>),
Comprehension(Box<Comprehension>),
MergeTreeTTLAction(Box<MergeTreeTTLAction>),
MergeTreeTTL(Box<MergeTreeTTL>),
IndexConstraintOption(Box<IndexConstraintOption>),
ColumnConstraint(Box<ColumnConstraint>),
PeriodForSystemTimeConstraint(Box<PeriodForSystemTimeConstraint>),
CaseSpecificColumnConstraint(Box<CaseSpecificColumnConstraint>),
CharacterSetColumnConstraint(Box<CharacterSetColumnConstraint>),
CheckColumnConstraint(Box<CheckColumnConstraint>),
CompressColumnConstraint(Box<CompressColumnConstraint>),
DateFormatColumnConstraint(Box<DateFormatColumnConstraint>),
EphemeralColumnConstraint(Box<EphemeralColumnConstraint>),
WithOperator(Box<WithOperator>),
GeneratedAsIdentityColumnConstraint(Box<GeneratedAsIdentityColumnConstraint>),
AutoIncrementColumnConstraint(AutoIncrementColumnConstraint),
CommentColumnConstraint(CommentColumnConstraint),
GeneratedAsRowColumnConstraint(Box<GeneratedAsRowColumnConstraint>),
IndexColumnConstraint(Box<IndexColumnConstraint>),
MaskingPolicyColumnConstraint(Box<MaskingPolicyColumnConstraint>),
NotNullColumnConstraint(Box<NotNullColumnConstraint>),
PrimaryKeyColumnConstraint(Box<PrimaryKeyColumnConstraint>),
UniqueColumnConstraint(Box<UniqueColumnConstraint>),
WatermarkColumnConstraint(Box<WatermarkColumnConstraint>),
ComputedColumnConstraint(Box<ComputedColumnConstraint>),
InOutColumnConstraint(Box<InOutColumnConstraint>),
DefaultColumnConstraint(Box<DefaultColumnConstraint>),
PathColumnConstraint(Box<PathColumnConstraint>),
Constraint(Box<Constraint>),
Export(Box<Export>),
Filter(Box<Filter>),
Changes(Box<Changes>),
CopyParameter(Box<CopyParameter>),
Credentials(Box<Credentials>),
Directory(Box<Directory>),
ForeignKey(Box<ForeignKey>),
ColumnPrefix(Box<ColumnPrefix>),
PrimaryKey(Box<PrimaryKey>),
IntoClause(Box<IntoClause>),
JoinHint(Box<JoinHint>),
Opclass(Box<Opclass>),
Index(Box<Index>),
IndexParameters(Box<IndexParameters>),
ConditionalInsert(Box<ConditionalInsert>),
MultitableInserts(Box<MultitableInserts>),
OnConflict(Box<OnConflict>),
OnCondition(Box<OnCondition>),
Returning(Box<Returning>),
Introducer(Box<Introducer>),
PartitionRange(Box<PartitionRange>),
Fetch(Box<Fetch>),
Group(Box<Group>),
Cube(Box<Cube>),
Rollup(Box<Rollup>),
GroupingSets(Box<GroupingSets>),
LimitOptions(Box<LimitOptions>),
Lateral(Box<Lateral>),
TableFromRows(Box<TableFromRows>),
RowsFrom(Box<RowsFrom>),
MatchRecognizeMeasure(Box<MatchRecognizeMeasure>),
WithFill(Box<WithFill>),
Property(Box<Property>),
GrantPrivilege(Box<GrantPrivilege>),
GrantPrincipal(Box<GrantPrincipal>),
AllowedValuesProperty(Box<AllowedValuesProperty>),
AlgorithmProperty(Box<AlgorithmProperty>),
AutoIncrementProperty(Box<AutoIncrementProperty>),
AutoRefreshProperty(Box<AutoRefreshProperty>),
BackupProperty(Box<BackupProperty>),
BuildProperty(Box<BuildProperty>),
BlockCompressionProperty(Box<BlockCompressionProperty>),
CharacterSetProperty(Box<CharacterSetProperty>),
ChecksumProperty(Box<ChecksumProperty>),
CollateProperty(Box<CollateProperty>),
DataBlocksizeProperty(Box<DataBlocksizeProperty>),
DataDeletionProperty(Box<DataDeletionProperty>),
DefinerProperty(Box<DefinerProperty>),
DistKeyProperty(Box<DistKeyProperty>),
DistributedByProperty(Box<DistributedByProperty>),
DistStyleProperty(Box<DistStyleProperty>),
DuplicateKeyProperty(Box<DuplicateKeyProperty>),
EngineProperty(Box<EngineProperty>),
ToTableProperty(Box<ToTableProperty>),
ExecuteAsProperty(Box<ExecuteAsProperty>),
ExternalProperty(Box<ExternalProperty>),
FallbackProperty(Box<FallbackProperty>),
FileFormatProperty(Box<FileFormatProperty>),
CredentialsProperty(Box<CredentialsProperty>),
FreespaceProperty(Box<FreespaceProperty>),
InheritsProperty(Box<InheritsProperty>),
InputModelProperty(Box<InputModelProperty>),
OutputModelProperty(Box<OutputModelProperty>),
IsolatedLoadingProperty(Box<IsolatedLoadingProperty>),
JournalProperty(Box<JournalProperty>),
LanguageProperty(Box<LanguageProperty>),
EnviromentProperty(Box<EnviromentProperty>),
ClusteredByProperty(Box<ClusteredByProperty>),
DictProperty(Box<DictProperty>),
DictRange(Box<DictRange>),
OnCluster(Box<OnCluster>),
LikeProperty(Box<LikeProperty>),
LocationProperty(Box<LocationProperty>),
LockProperty(Box<LockProperty>),
LockingProperty(Box<LockingProperty>),
LogProperty(Box<LogProperty>),
MaterializedProperty(Box<MaterializedProperty>),
MergeBlockRatioProperty(Box<MergeBlockRatioProperty>),
OnProperty(Box<OnProperty>),
OnCommitProperty(Box<OnCommitProperty>),
PartitionedByProperty(Box<PartitionedByProperty>),
PartitionedByBucket(Box<PartitionedByBucket>),
PartitionByTruncate(Box<PartitionByTruncate>),
PartitionByRangeProperty(Box<PartitionByRangeProperty>),
PartitionByRangePropertyDynamic(Box<PartitionByRangePropertyDynamic>),
PartitionByListProperty(Box<PartitionByListProperty>),
PartitionList(Box<PartitionList>),
Partition(Box<Partition>),
RefreshTriggerProperty(Box<RefreshTriggerProperty>),
UniqueKeyProperty(Box<UniqueKeyProperty>),
RollupProperty(Box<RollupProperty>),
PartitionBoundSpec(Box<PartitionBoundSpec>),
PartitionedOfProperty(Box<PartitionedOfProperty>),
RemoteWithConnectionModelProperty(Box<RemoteWithConnectionModelProperty>),
ReturnsProperty(Box<ReturnsProperty>),
RowFormatProperty(Box<RowFormatProperty>),
RowFormatDelimitedProperty(Box<RowFormatDelimitedProperty>),
RowFormatSerdeProperty(Box<RowFormatSerdeProperty>),
QueryTransform(Box<QueryTransform>),
SampleProperty(Box<SampleProperty>),
SecurityProperty(Box<SecurityProperty>),
SchemaCommentProperty(Box<SchemaCommentProperty>),
SemanticView(Box<SemanticView>),
SerdeProperties(Box<SerdeProperties>),
SetProperty(Box<SetProperty>),
SharingProperty(Box<SharingProperty>),
SetConfigProperty(Box<SetConfigProperty>),
SettingsProperty(Box<SettingsProperty>),
SortKeyProperty(Box<SortKeyProperty>),
SqlReadWriteProperty(Box<SqlReadWriteProperty>),
SqlSecurityProperty(Box<SqlSecurityProperty>),
StabilityProperty(Box<StabilityProperty>),
StorageHandlerProperty(Box<StorageHandlerProperty>),
TemporaryProperty(Box<TemporaryProperty>),
Tags(Box<Tags>),
TransformModelProperty(Box<TransformModelProperty>),
TransientProperty(Box<TransientProperty>),
UsingTemplateProperty(Box<UsingTemplateProperty>),
ViewAttributeProperty(Box<ViewAttributeProperty>),
VolatileProperty(Box<VolatileProperty>),
WithDataProperty(Box<WithDataProperty>),
WithJournalTableProperty(Box<WithJournalTableProperty>),
WithSchemaBindingProperty(Box<WithSchemaBindingProperty>),
WithSystemVersioningProperty(Box<WithSystemVersioningProperty>),
WithProcedureOptions(Box<WithProcedureOptions>),
EncodeProperty(Box<EncodeProperty>),
IncludeProperty(Box<IncludeProperty>),
Properties(Box<Properties>),
InputOutputFormat(Box<InputOutputFormat>),
Reference(Box<Reference>),
QueryOption(Box<QueryOption>),
WithTableHint(Box<WithTableHint>),
IndexTableHint(Box<IndexTableHint>),
HistoricalData(Box<HistoricalData>),
Get(Box<Get>),
SetOperation(Box<SetOperation>),
Var(Box<Var>),
Version(Box<Version>),
Schema(Box<Schema>),
Lock(Box<Lock>),
TableSample(Box<TableSample>),
Tag(Box<Tag>),
UnpivotColumns(Box<UnpivotColumns>),
WindowSpec(Box<WindowSpec>),
SessionParameter(Box<SessionParameter>),
PseudoType(Box<PseudoType>),
ObjectIdentifier(Box<ObjectIdentifier>),
Transaction(Box<Transaction>),
Commit(Box<Commit>),
Rollback(Box<Rollback>),
AlterSession(Box<AlterSession>),
Analyze(Box<Analyze>),
AnalyzeStatistics(Box<AnalyzeStatistics>),
AnalyzeHistogram(Box<AnalyzeHistogram>),
AnalyzeSample(Box<AnalyzeSample>),
AnalyzeListChainedRows(Box<AnalyzeListChainedRows>),
AnalyzeDelete(Box<AnalyzeDelete>),
AnalyzeWith(Box<AnalyzeWith>),
AnalyzeValidate(Box<AnalyzeValidate>),
AddPartition(Box<AddPartition>),
AttachOption(Box<AttachOption>),
DropPartition(Box<DropPartition>),
ReplacePartition(Box<ReplacePartition>),
DPipe(Box<DPipe>),
Operator(Box<Operator>),
PivotAny(Box<PivotAny>),
Aliases(Box<Aliases>),
AtIndex(Box<AtIndex>),
FromTimeZone(Box<FromTimeZone>),
FormatPhrase(Box<FormatPhrase>),
ForIn(Box<ForIn>),
TimeUnit(Box<TimeUnit>),
IntervalOp(Box<IntervalOp>),
IntervalSpan(Box<IntervalSpan>),
HavingMax(Box<HavingMax>),
CosineDistance(Box<CosineDistance>),
DotProduct(Box<DotProduct>),
EuclideanDistance(Box<EuclideanDistance>),
ManhattanDistance(Box<ManhattanDistance>),
JarowinklerSimilarity(Box<JarowinklerSimilarity>),
Booland(Box<Booland>),
Boolor(Box<Boolor>),
ParameterizedAgg(Box<ParameterizedAgg>),
ArgMax(Box<ArgMax>),
ArgMin(Box<ArgMin>),
ApproxTopK(Box<ApproxTopK>),
ApproxTopKAccumulate(Box<ApproxTopKAccumulate>),
ApproxTopKCombine(Box<ApproxTopKCombine>),
ApproxTopKEstimate(Box<ApproxTopKEstimate>),
ApproxTopSum(Box<ApproxTopSum>),
ApproxQuantiles(Box<ApproxQuantiles>),
Minhash(Box<Minhash>),
FarmFingerprint(Box<FarmFingerprint>),
Float64(Box<Float64>),
Transform(Box<Transform>),
Translate(Box<Translate>),
Grouping(Box<Grouping>),
GroupingId(Box<GroupingId>),
Anonymous(Box<Anonymous>),
AnonymousAggFunc(Box<AnonymousAggFunc>),
CombinedAggFunc(Box<CombinedAggFunc>),
CombinedParameterizedAgg(Box<CombinedParameterizedAgg>),
HashAgg(Box<HashAgg>),
Hll(Box<Hll>),
Apply(Box<Apply>),
ToBoolean(Box<ToBoolean>),
List(Box<List>),
ToMap(Box<ToMap>),
Pad(Box<Pad>),
ToChar(Box<ToChar>),
ToNumber(Box<ToNumber>),
ToDouble(Box<ToDouble>),
Int64(Box<UnaryFunc>),
StringFunc(Box<StringFunc>),
ToDecfloat(Box<ToDecfloat>),
TryToDecfloat(Box<TryToDecfloat>),
ToFile(Box<ToFile>),
Columns(Box<Columns>),
ConvertToCharset(Box<ConvertToCharset>),
ConvertTimezone(Box<ConvertTimezone>),
GenerateSeries(Box<GenerateSeries>),
AIAgg(Box<AIAgg>),
AIClassify(Box<AIClassify>),
ArrayAll(Box<ArrayAll>),
ArrayAny(Box<ArrayAny>),
ArrayConstructCompact(Box<ArrayConstructCompact>),
StPoint(Box<StPoint>),
StDistance(Box<StDistance>),
StringToArray(Box<StringToArray>),
ArraySum(Box<ArraySum>),
ObjectAgg(Box<ObjectAgg>),
CastToStrType(Box<CastToStrType>),
CheckJson(Box<CheckJson>),
CheckXml(Box<CheckXml>),
TranslateCharacters(Box<TranslateCharacters>),
CurrentSchemas(Box<CurrentSchemas>),
CurrentDatetime(Box<CurrentDatetime>),
Localtime(Box<Localtime>),
Localtimestamp(Box<Localtimestamp>),
Systimestamp(Box<Systimestamp>),
CurrentSchema(Box<CurrentSchema>),
CurrentUser(Box<CurrentUser>),
UtcTime(Box<UtcTime>),
UtcTimestamp(Box<UtcTimestamp>),
Timestamp(Box<TimestampFunc>),
DateBin(Box<DateBin>),
Datetime(Box<Datetime>),
DatetimeAdd(Box<DatetimeAdd>),
DatetimeSub(Box<DatetimeSub>),
DatetimeDiff(Box<DatetimeDiff>),
DatetimeTrunc(Box<DatetimeTrunc>),
Dayname(Box<Dayname>),
MakeInterval(Box<MakeInterval>),
PreviousDay(Box<PreviousDay>),
Elt(Box<Elt>),
TimestampAdd(Box<TimestampAdd>),
TimestampSub(Box<TimestampSub>),
TimestampDiff(Box<TimestampDiff>),
TimeSlice(Box<TimeSlice>),
TimeAdd(Box<TimeAdd>),
TimeSub(Box<TimeSub>),
TimeDiff(Box<TimeDiff>),
TimeTrunc(Box<TimeTrunc>),
DateFromParts(Box<DateFromParts>),
TimeFromParts(Box<TimeFromParts>),
DecodeCase(Box<DecodeCase>),
Decrypt(Box<Decrypt>),
DecryptRaw(Box<DecryptRaw>),
Encode(Box<Encode>),
Encrypt(Box<Encrypt>),
EncryptRaw(Box<EncryptRaw>),
EqualNull(Box<EqualNull>),
ToBinary(Box<ToBinary>),
Base64DecodeBinary(Box<Base64DecodeBinary>),
Base64DecodeString(Box<Base64DecodeString>),
Base64Encode(Box<Base64Encode>),
TryBase64DecodeBinary(Box<TryBase64DecodeBinary>),
TryBase64DecodeString(Box<TryBase64DecodeString>),
GapFill(Box<GapFill>),
GenerateDateArray(Box<GenerateDateArray>),
GenerateTimestampArray(Box<GenerateTimestampArray>),
GetExtract(Box<GetExtract>),
Getbit(Box<Getbit>),
OverflowTruncateBehavior(Box<OverflowTruncateBehavior>),
HexEncode(Box<HexEncode>),
Compress(Box<Compress>),
DecompressBinary(Box<DecompressBinary>),
DecompressString(Box<DecompressString>),
Xor(Box<Xor>),
Nullif(Box<Nullif>),
JSON(Box<JSON>),
JSONPath(Box<JSONPath>),
JSONPathFilter(Box<JSONPathFilter>),
JSONPathKey(Box<JSONPathKey>),
JSONPathRecursive(Box<JSONPathRecursive>),
JSONPathScript(Box<JSONPathScript>),
JSONPathSlice(Box<JSONPathSlice>),
JSONPathSelector(Box<JSONPathSelector>),
JSONPathSubscript(Box<JSONPathSubscript>),
JSONPathUnion(Box<JSONPathUnion>),
Format(Box<Format>),
JSONKeys(Box<JSONKeys>),
JSONKeyValue(Box<JSONKeyValue>),
JSONKeysAtDepth(Box<JSONKeysAtDepth>),
JSONObject(Box<JSONObject>),
JSONObjectAgg(Box<JSONObjectAgg>),
JSONBObjectAgg(Box<JSONBObjectAgg>),
JSONArray(Box<JSONArray>),
JSONArrayAgg(Box<JSONArrayAgg>),
JSONExists(Box<JSONExists>),
JSONColumnDef(Box<JSONColumnDef>),
JSONSchema(Box<JSONSchema>),
JSONSet(Box<JSONSet>),
JSONStripNulls(Box<JSONStripNulls>),
JSONValue(Box<JSONValue>),
JSONValueArray(Box<JSONValueArray>),
JSONRemove(Box<JSONRemove>),
JSONTable(Box<JSONTable>),
JSONType(Box<JSONType>),
ObjectInsert(Box<ObjectInsert>),
OpenJSONColumnDef(Box<OpenJSONColumnDef>),
OpenJSON(Box<OpenJSON>),
JSONBExists(Box<JSONBExists>),
JSONBContains(Box<BinaryFunc>),
JSONBExtract(Box<BinaryFunc>),
JSONCast(Box<JSONCast>),
JSONExtract(Box<JSONExtract>),
JSONExtractQuote(Box<JSONExtractQuote>),
JSONExtractArray(Box<JSONExtractArray>),
JSONExtractScalar(Box<JSONExtractScalar>),
JSONBExtractScalar(Box<JSONBExtractScalar>),
JSONFormat(Box<JSONFormat>),
JSONBool(Box<UnaryFunc>),
JSONPathRoot(JSONPathRoot),
JSONArrayAppend(Box<JSONArrayAppend>),
JSONArrayContains(Box<JSONArrayContains>),
JSONArrayInsert(Box<JSONArrayInsert>),
ParseJSON(Box<ParseJSON>),
ParseUrl(Box<ParseUrl>),
ParseIp(Box<ParseIp>),
ParseTime(Box<ParseTime>),
ParseDatetime(Box<ParseDatetime>),
Map(Box<Map>),
MapCat(Box<MapCat>),
MapDelete(Box<MapDelete>),
MapInsert(Box<MapInsert>),
MapPick(Box<MapPick>),
ScopeResolution(Box<ScopeResolution>),
Slice(Box<Slice>),
VarMap(Box<VarMap>),
MatchAgainst(Box<MatchAgainst>),
MD5Digest(Box<MD5Digest>),
MD5NumberLower64(Box<UnaryFunc>),
MD5NumberUpper64(Box<UnaryFunc>),
Monthname(Box<Monthname>),
Ntile(Box<Ntile>),
Normalize(Box<Normalize>),
Normal(Box<Normal>),
Predict(Box<Predict>),
MLTranslate(Box<MLTranslate>),
FeaturesAtTime(Box<FeaturesAtTime>),
GenerateEmbedding(Box<GenerateEmbedding>),
MLForecast(Box<MLForecast>),
ModelAttribute(Box<ModelAttribute>),
VectorSearch(Box<VectorSearch>),
Quantile(Box<Quantile>),
ApproxQuantile(Box<ApproxQuantile>),
ApproxPercentileEstimate(Box<ApproxPercentileEstimate>),
Randn(Box<Randn>),
Randstr(Box<Randstr>),
RangeN(Box<RangeN>),
RangeBucket(Box<RangeBucket>),
ReadCSV(Box<ReadCSV>),
ReadParquet(Box<ReadParquet>),
Reduce(Box<Reduce>),
RegexpExtractAll(Box<RegexpExtractAll>),
RegexpILike(Box<RegexpILike>),
RegexpFullMatch(Box<RegexpFullMatch>),
RegexpInstr(Box<RegexpInstr>),
RegexpSplit(Box<RegexpSplit>),
RegexpCount(Box<RegexpCount>),
RegrValx(Box<RegrValx>),
RegrValy(Box<RegrValy>),
RegrAvgy(Box<RegrAvgy>),
RegrAvgx(Box<RegrAvgx>),
RegrCount(Box<RegrCount>),
RegrIntercept(Box<RegrIntercept>),
RegrR2(Box<RegrR2>),
RegrSxx(Box<RegrSxx>),
RegrSxy(Box<RegrSxy>),
RegrSyy(Box<RegrSyy>),
RegrSlope(Box<RegrSlope>),
SafeAdd(Box<SafeAdd>),
SafeDivide(Box<SafeDivide>),
SafeMultiply(Box<SafeMultiply>),
SafeSubtract(Box<SafeSubtract>),
SHA2(Box<SHA2>),
SHA2Digest(Box<SHA2Digest>),
SortArray(Box<SortArray>),
SplitPart(Box<SplitPart>),
SubstringIndex(Box<SubstringIndex>),
StandardHash(Box<StandardHash>),
StrPosition(Box<StrPosition>),
Search(Box<Search>),
SearchIp(Box<SearchIp>),
StrToDate(Box<StrToDate>),
DateStrToDate(Box<UnaryFunc>),
DateToDateStr(Box<UnaryFunc>),
StrToTime(Box<StrToTime>),
StrToUnix(Box<StrToUnix>),
StrToMap(Box<StrToMap>),
NumberToStr(Box<NumberToStr>),
FromBase(Box<FromBase>),
Stuff(Box<Stuff>),
TimeToStr(Box<TimeToStr>),
TimeStrToTime(Box<TimeStrToTime>),
TsOrDsAdd(Box<TsOrDsAdd>),
TsOrDsDiff(Box<TsOrDsDiff>),
TsOrDsToDate(Box<TsOrDsToDate>),
TsOrDsToTime(Box<TsOrDsToTime>),
Unhex(Box<Unhex>),
Uniform(Box<Uniform>),
UnixToStr(Box<UnixToStr>),
UnixToTime(Box<UnixToTime>),
Uuid(Box<Uuid>),
TimestampFromParts(Box<TimestampFromParts>),
TimestampTzFromParts(Box<TimestampTzFromParts>),
Corr(Box<Corr>),
WidthBucket(Box<WidthBucket>),
CovarSamp(Box<CovarSamp>),
CovarPop(Box<CovarPop>),
Week(Box<Week>),
XMLElement(Box<XMLElement>),
XMLGet(Box<XMLGet>),
XMLTable(Box<XMLTable>),
XMLKeyValueOption(Box<XMLKeyValueOption>),
Zipf(Box<Zipf>),
Merge(Box<Merge>),
When(Box<When>),
Whens(Box<Whens>),
NextValueFor(Box<NextValueFor>),
ReturnStmt(Box<Expression>),
}Expand description
Represent any SQL expression or statement as a single, recursive AST node.
Expression is the root type of the polyglot AST. Every parsed SQL
construct – from a simple integer literal to a multi-CTE query with
window functions – is represented as a variant of this enum.
Variants are organized into logical groups (see the module-level docs).
Most non-trivial variants box their payload so that size_of::<Expression>()
stays small (currently two words: tag + pointer).
§Constructing Expressions
Use the convenience constructors on impl Expression for common cases:
use polyglot_sql::expressions::Expression;
let col = Expression::column("id");
let lit = Expression::number(42);
let star = Expression::star();§Generating SQL
let expr = Expression::column("name");
assert_eq!(expr.sql(), "name");Variants§
Literal(Literal)
Boolean(BooleanLiteral)
Null(Null)
Identifier(Identifier)
Column(Column)
Table(TableRef)
Star(Star)
BracedWildcard(Box<Expression>)
Snowflake braced wildcard syntax: {}, {tbl.}, {* EXCLUDE (…)}, {* ILIKE ‘…’}
Select(Box<Select>)
Union(Box<Union>)
Intersect(Box<Intersect>)
Except(Box<Except>)
Subquery(Box<Subquery>)
Pivot(Box<Pivot>)
PivotAlias(Box<PivotAlias>)
Unpivot(Box<Unpivot>)
Values(Box<Values>)
PreWhere(Box<PreWhere>)
Stream(Box<Stream>)
UsingData(Box<UsingData>)
XmlNamespace(Box<XmlNamespace>)
Insert(Box<Insert>)
Update(Box<Update>)
Delete(Box<Delete>)
Copy(Box<CopyStmt>)
Put(Box<PutStmt>)
StageReference(Box<StageReference>)
Alias(Box<Alias>)
Cast(Box<Cast>)
Collation(Box<CollationExpr>)
Case(Box<Case>)
And(Box<BinaryOp>)
Or(Box<BinaryOp>)
Add(Box<BinaryOp>)
Sub(Box<BinaryOp>)
Mul(Box<BinaryOp>)
Div(Box<BinaryOp>)
Mod(Box<BinaryOp>)
Eq(Box<BinaryOp>)
Neq(Box<BinaryOp>)
Lt(Box<BinaryOp>)
Lte(Box<BinaryOp>)
Gt(Box<BinaryOp>)
Gte(Box<BinaryOp>)
Like(Box<LikeOp>)
ILike(Box<LikeOp>)
Match(Box<BinaryOp>)
SQLite MATCH operator (FTS)
BitwiseAnd(Box<BinaryOp>)
BitwiseOr(Box<BinaryOp>)
BitwiseXor(Box<BinaryOp>)
Concat(Box<BinaryOp>)
Adjacent(Box<BinaryOp>)
TsMatch(Box<BinaryOp>)
PropertyEQ(Box<BinaryOp>)
ArrayContainsAll(Box<BinaryOp>)
ArrayContainedBy(Box<BinaryOp>)
ArrayOverlaps(Box<BinaryOp>)
JSONBContainsAllTopKeys(Box<BinaryOp>)
JSONBContainsAnyTopKeys(Box<BinaryOp>)
JSONBDeleteAtPath(Box<BinaryOp>)
ExtendsLeft(Box<BinaryOp>)
ExtendsRight(Box<BinaryOp>)
Not(Box<UnaryOp>)
Neg(Box<UnaryOp>)
BitwiseNot(Box<UnaryOp>)
In(Box<In>)
Between(Box<Between>)
IsNull(Box<IsNull>)
IsTrue(Box<IsTrueFalse>)
IsFalse(Box<IsTrueFalse>)
IsJson(Box<IsJson>)
Is(Box<BinaryOp>)
Exists(Box<Exists>)
MemberOf(Box<BinaryOp>)
MySQL MEMBER OF operator: expr MEMBER OF(json_array)
Function(Box<Function>)
AggregateFunction(Box<AggregateFunction>)
WindowFunction(Box<WindowFunction>)
From(Box<From>)
Join(Box<Join>)
JoinedTable(Box<JoinedTable>)
Where(Box<Where>)
GroupBy(Box<GroupBy>)
Having(Box<Having>)
OrderBy(Box<OrderBy>)
Limit(Box<Limit>)
Offset(Box<Offset>)
Qualify(Box<Qualify>)
With(Box<With>)
Cte(Box<Cte>)
DistributeBy(Box<DistributeBy>)
ClusterBy(Box<ClusterBy>)
SortBy(Box<SortBy>)
LateralView(Box<LateralView>)
Hint(Box<Hint>)
Pseudocolumn(Pseudocolumn)
Connect(Box<Connect>)
Prior(Box<Prior>)
ConnectByRoot(Box<ConnectByRoot>)
MatchRecognize(Box<MatchRecognize>)
Ordered(Box<Ordered>)
Window(Box<WindowSpec>)
Over(Box<Over>)
WithinGroup(Box<WithinGroup>)
DataType(DataType)
Array(Box<Array>)
Struct(Box<Struct>)
Tuple(Box<Tuple>)
Interval(Box<Interval>)
ConcatWs(Box<ConcatWs>)
Substring(Box<SubstringFunc>)
Upper(Box<UnaryFunc>)
Lower(Box<UnaryFunc>)
Length(Box<UnaryFunc>)
Trim(Box<TrimFunc>)
LTrim(Box<UnaryFunc>)
RTrim(Box<UnaryFunc>)
Replace(Box<ReplaceFunc>)
Reverse(Box<UnaryFunc>)
Left(Box<LeftRightFunc>)
Right(Box<LeftRightFunc>)
Repeat(Box<RepeatFunc>)
Lpad(Box<PadFunc>)
Rpad(Box<PadFunc>)
Split(Box<SplitFunc>)
RegexpLike(Box<RegexpFunc>)
RegexpReplace(Box<RegexpReplaceFunc>)
RegexpExtract(Box<RegexpExtractFunc>)
Overlay(Box<OverlayFunc>)
Abs(Box<UnaryFunc>)
Round(Box<RoundFunc>)
Floor(Box<FloorFunc>)
Ceil(Box<CeilFunc>)
Power(Box<BinaryFunc>)
Sqrt(Box<UnaryFunc>)
Cbrt(Box<UnaryFunc>)
Ln(Box<UnaryFunc>)
Log(Box<LogFunc>)
Exp(Box<UnaryFunc>)
Sign(Box<UnaryFunc>)
Greatest(Box<VarArgFunc>)
Least(Box<VarArgFunc>)
CurrentDate(CurrentDate)
CurrentTime(CurrentTime)
CurrentTimestamp(CurrentTimestamp)
CurrentTimestampLTZ(CurrentTimestampLTZ)
AtTimeZone(Box<AtTimeZone>)
DateAdd(Box<DateAddFunc>)
DateSub(Box<DateAddFunc>)
DateDiff(Box<DateDiffFunc>)
DateTrunc(Box<DateTruncFunc>)
Extract(Box<ExtractFunc>)
ToDate(Box<ToDateFunc>)
ToTimestamp(Box<ToTimestampFunc>)
Date(Box<UnaryFunc>)
Time(Box<UnaryFunc>)
DateFromUnixDate(Box<UnaryFunc>)
UnixDate(Box<UnaryFunc>)
UnixSeconds(Box<UnaryFunc>)
UnixMillis(Box<UnaryFunc>)
UnixMicros(Box<UnaryFunc>)
UnixToTimeStr(Box<BinaryFunc>)
TimeStrToDate(Box<UnaryFunc>)
DateToDi(Box<UnaryFunc>)
DiToDate(Box<UnaryFunc>)
TsOrDiToDi(Box<UnaryFunc>)
TsOrDsToDatetime(Box<UnaryFunc>)
TsOrDsToTimestamp(Box<UnaryFunc>)
YearOfWeek(Box<UnaryFunc>)
YearOfWeekIso(Box<UnaryFunc>)
Coalesce(Box<VarArgFunc>)
NullIf(Box<BinaryFunc>)
IfFunc(Box<IfFunc>)
IfNull(Box<BinaryFunc>)
Nvl(Box<BinaryFunc>)
Nvl2(Box<Nvl2Func>)
TryCast(Box<Cast>)
SafeCast(Box<Cast>)
Count(Box<CountFunc>)
Sum(Box<AggFunc>)
Avg(Box<AggFunc>)
Min(Box<AggFunc>)
Max(Box<AggFunc>)
GroupConcat(Box<GroupConcatFunc>)
StringAgg(Box<StringAggFunc>)
ListAgg(Box<ListAggFunc>)
ArrayAgg(Box<AggFunc>)
CountIf(Box<AggFunc>)
SumIf(Box<SumIfFunc>)
Stddev(Box<AggFunc>)
StddevPop(Box<AggFunc>)
StddevSamp(Box<AggFunc>)
Variance(Box<AggFunc>)
VarPop(Box<AggFunc>)
VarSamp(Box<AggFunc>)
Median(Box<AggFunc>)
Mode(Box<AggFunc>)
First(Box<AggFunc>)
Last(Box<AggFunc>)
AnyValue(Box<AggFunc>)
ApproxDistinct(Box<AggFunc>)
ApproxCountDistinct(Box<AggFunc>)
ApproxPercentile(Box<ApproxPercentileFunc>)
Percentile(Box<PercentileFunc>)
LogicalAnd(Box<AggFunc>)
LogicalOr(Box<AggFunc>)
Skewness(Box<AggFunc>)
BitwiseCount(Box<UnaryFunc>)
ArrayConcatAgg(Box<AggFunc>)
ArrayUniqueAgg(Box<AggFunc>)
BoolXorAgg(Box<AggFunc>)
RowNumber(RowNumber)
Rank(Rank)
DenseRank(DenseRank)
NTile(Box<NTileFunc>)
Lead(Box<LeadLagFunc>)
Lag(Box<LeadLagFunc>)
FirstValue(Box<ValueFunc>)
LastValue(Box<ValueFunc>)
NthValue(Box<NthValueFunc>)
PercentRank(PercentRank)
CumeDist(CumeDist)
PercentileCont(Box<PercentileFunc>)
PercentileDisc(Box<PercentileFunc>)
Contains(Box<BinaryFunc>)
StartsWith(Box<BinaryFunc>)
EndsWith(Box<BinaryFunc>)
Position(Box<PositionFunc>)
Initcap(Box<UnaryFunc>)
Ascii(Box<UnaryFunc>)
Chr(Box<UnaryFunc>)
CharFunc(Box<CharFunc>)
MySQL CHAR function with multiple args and optional USING charset
Soundex(Box<UnaryFunc>)
Levenshtein(Box<BinaryFunc>)
ByteLength(Box<UnaryFunc>)
Hex(Box<UnaryFunc>)
LowerHex(Box<UnaryFunc>)
Unicode(Box<UnaryFunc>)
ModFunc(Box<BinaryFunc>)
Random(Random)
Rand(Box<Rand>)
TruncFunc(Box<TruncateFunc>)
Pi(Pi)
Radians(Box<UnaryFunc>)
Degrees(Box<UnaryFunc>)
Sin(Box<UnaryFunc>)
Cos(Box<UnaryFunc>)
Tan(Box<UnaryFunc>)
Asin(Box<UnaryFunc>)
Acos(Box<UnaryFunc>)
Atan(Box<UnaryFunc>)
Atan2(Box<BinaryFunc>)
IsNan(Box<UnaryFunc>)
IsInf(Box<UnaryFunc>)
IntDiv(Box<BinaryFunc>)
Decode(Box<DecodeFunc>)
DateFormat(Box<DateFormatFunc>)
FormatDate(Box<DateFormatFunc>)
Year(Box<UnaryFunc>)
Month(Box<UnaryFunc>)
Day(Box<UnaryFunc>)
Hour(Box<UnaryFunc>)
Minute(Box<UnaryFunc>)
Second(Box<UnaryFunc>)
DayOfWeek(Box<UnaryFunc>)
DayOfWeekIso(Box<UnaryFunc>)
DayOfMonth(Box<UnaryFunc>)
DayOfYear(Box<UnaryFunc>)
WeekOfYear(Box<UnaryFunc>)
Quarter(Box<UnaryFunc>)
AddMonths(Box<BinaryFunc>)
MonthsBetween(Box<BinaryFunc>)
LastDay(Box<LastDayFunc>)
NextDay(Box<BinaryFunc>)
Epoch(Box<UnaryFunc>)
EpochMs(Box<UnaryFunc>)
FromUnixtime(Box<FromUnixtimeFunc>)
UnixTimestamp(Box<UnixTimestampFunc>)
MakeDate(Box<MakeDateFunc>)
MakeTimestamp(Box<MakeTimestampFunc>)
TimestampTrunc(Box<DateTruncFunc>)
TimeStrToUnix(Box<UnaryFunc>)
SessionUser(SessionUser)
SHA(Box<UnaryFunc>)
SHA1Digest(Box<UnaryFunc>)
TimeToUnix(Box<UnaryFunc>)
ArrayFunc(Box<ArrayConstructor>)
ArrayLength(Box<UnaryFunc>)
ArraySize(Box<UnaryFunc>)
Cardinality(Box<UnaryFunc>)
ArrayContains(Box<BinaryFunc>)
ArrayPosition(Box<BinaryFunc>)
ArrayAppend(Box<BinaryFunc>)
ArrayPrepend(Box<BinaryFunc>)
ArrayConcat(Box<VarArgFunc>)
ArraySort(Box<ArraySortFunc>)
ArrayReverse(Box<UnaryFunc>)
ArrayDistinct(Box<UnaryFunc>)
ArrayJoin(Box<ArrayJoinFunc>)
ArrayToString(Box<ArrayJoinFunc>)
Unnest(Box<UnnestFunc>)
Explode(Box<UnaryFunc>)
ExplodeOuter(Box<UnaryFunc>)
ArrayFilter(Box<ArrayFilterFunc>)
ArrayTransform(Box<ArrayTransformFunc>)
ArrayFlatten(Box<UnaryFunc>)
ArrayCompact(Box<UnaryFunc>)
ArrayIntersect(Box<BinaryFunc>)
ArrayUnion(Box<BinaryFunc>)
ArrayExcept(Box<BinaryFunc>)
ArrayRemove(Box<BinaryFunc>)
ArrayZip(Box<VarArgFunc>)
Sequence(Box<SequenceFunc>)
Generate(Box<SequenceFunc>)
ExplodingGenerateSeries(Box<SequenceFunc>)
ToArray(Box<UnaryFunc>)
StarMap(Box<BinaryFunc>)
StructFunc(Box<StructConstructor>)
StructExtract(Box<StructExtractFunc>)
NamedStruct(Box<NamedStructFunc>)
MapFunc(Box<MapConstructor>)
MapFromEntries(Box<UnaryFunc>)
MapFromArrays(Box<BinaryFunc>)
MapKeys(Box<UnaryFunc>)
MapValues(Box<UnaryFunc>)
MapContainsKey(Box<BinaryFunc>)
MapConcat(Box<VarArgFunc>)
ElementAt(Box<BinaryFunc>)
TransformKeys(Box<TransformFunc>)
TransformValues(Box<TransformFunc>)
JsonExtract(Box<JsonExtractFunc>)
JsonExtractScalar(Box<JsonExtractFunc>)
JsonExtractPath(Box<JsonPathFunc>)
JsonArray(Box<VarArgFunc>)
JsonObject(Box<JsonObjectFunc>)
JsonQuery(Box<JsonExtractFunc>)
JsonValue(Box<JsonExtractFunc>)
JsonArrayLength(Box<UnaryFunc>)
JsonKeys(Box<UnaryFunc>)
JsonType(Box<UnaryFunc>)
ParseJson(Box<UnaryFunc>)
ToJson(Box<UnaryFunc>)
JsonSet(Box<JsonModifyFunc>)
JsonInsert(Box<JsonModifyFunc>)
JsonRemove(Box<JsonPathFunc>)
JsonMergePatch(Box<BinaryFunc>)
JsonArrayAgg(Box<JsonArrayAggFunc>)
JsonObjectAgg(Box<JsonObjectAggFunc>)
Convert(Box<ConvertFunc>)
Typeof(Box<UnaryFunc>)
Lambda(Box<LambdaExpr>)
Parameter(Box<Parameter>)
Placeholder(Placeholder)
NamedArgument(Box<NamedArgument>)
TableArgument(Box<TableArgument>)
TABLE ref or MODEL ref used as a function argument (BigQuery) e.g., GAP_FILL(TABLE device_data, …) or ML.PREDICT(MODEL mydataset.mymodel, …)
SqlComment(Box<SqlComment>)
NullSafeEq(Box<BinaryOp>)
NullSafeNeq(Box<BinaryOp>)
Glob(Box<BinaryOp>)
SimilarTo(Box<SimilarToExpr>)
Any(Box<QuantifiedExpr>)
All(Box<QuantifiedExpr>)
Overlaps(Box<OverlapsExpr>)
BitwiseLeftShift(Box<BinaryOp>)
BitwiseRightShift(Box<BinaryOp>)
BitwiseAndAgg(Box<AggFunc>)
BitwiseOrAgg(Box<AggFunc>)
BitwiseXorAgg(Box<AggFunc>)
Subscript(Box<Subscript>)
Dot(Box<DotAccess>)
MethodCall(Box<MethodCall>)
ArraySlice(Box<ArraySlice>)
CreateTable(Box<CreateTable>)
DropTable(Box<DropTable>)
AlterTable(Box<AlterTable>)
CreateIndex(Box<CreateIndex>)
DropIndex(Box<DropIndex>)
CreateView(Box<CreateView>)
DropView(Box<DropView>)
AlterView(Box<AlterView>)
AlterIndex(Box<AlterIndex>)
Truncate(Box<Truncate>)
Use(Box<Use>)
Cache(Box<Cache>)
Uncache(Box<Uncache>)
LoadData(Box<LoadData>)
Pragma(Box<Pragma>)
Grant(Box<Grant>)
Revoke(Box<Revoke>)
Comment(Box<Comment>)
SetStatement(Box<SetStatement>)
CreateSchema(Box<CreateSchema>)
DropSchema(Box<DropSchema>)
DropNamespace(Box<DropNamespace>)
CreateDatabase(Box<CreateDatabase>)
DropDatabase(Box<DropDatabase>)
CreateFunction(Box<CreateFunction>)
DropFunction(Box<DropFunction>)
CreateProcedure(Box<CreateProcedure>)
DropProcedure(Box<DropProcedure>)
CreateSequence(Box<CreateSequence>)
DropSequence(Box<DropSequence>)
AlterSequence(Box<AlterSequence>)
CreateTrigger(Box<CreateTrigger>)
DropTrigger(Box<DropTrigger>)
CreateType(Box<CreateType>)
DropType(Box<DropType>)
Describe(Box<Describe>)
Show(Box<Show>)
Command(Box<Command>)
Kill(Box<Kill>)
Execute(Box<ExecuteStatement>)
EXEC/EXECUTE statement (TSQL stored procedure call)
Raw(Raw)
Paren(Box<Paren>)
Annotated(Box<Annotated>)
Refresh(Box<Refresh>)
LockingStatement(Box<LockingStatement>)
SequenceProperties(Box<SequenceProperties>)
TruncateTable(Box<TruncateTable>)
Clone(Box<Clone>)
Attach(Box<Attach>)
Detach(Box<Detach>)
Install(Box<Install>)
Summarize(Box<Summarize>)
Declare(Box<Declare>)
DeclareItem(Box<DeclareItem>)
Set(Box<Set>)
Heredoc(Box<Heredoc>)
SetItem(Box<SetItem>)
QueryBand(Box<QueryBand>)
UserDefinedFunction(Box<UserDefinedFunction>)
RecursiveWithSearch(Box<RecursiveWithSearch>)
ProjectionDef(Box<ProjectionDef>)
TableAlias(Box<TableAlias>)
ByteString(Box<ByteString>)
HexStringExpr(Box<HexStringExpr>)
UnicodeString(Box<UnicodeString>)
ColumnPosition(Box<ColumnPosition>)
ColumnDef(Box<ColumnDef>)
AlterColumn(Box<AlterColumn>)
AlterSortKey(Box<AlterSortKey>)
AlterSet(Box<AlterSet>)
RenameColumn(Box<RenameColumn>)
Comprehension(Box<Comprehension>)
MergeTreeTTLAction(Box<MergeTreeTTLAction>)
MergeTreeTTL(Box<MergeTreeTTL>)
IndexConstraintOption(Box<IndexConstraintOption>)
ColumnConstraint(Box<ColumnConstraint>)
PeriodForSystemTimeConstraint(Box<PeriodForSystemTimeConstraint>)
CaseSpecificColumnConstraint(Box<CaseSpecificColumnConstraint>)
CharacterSetColumnConstraint(Box<CharacterSetColumnConstraint>)
CheckColumnConstraint(Box<CheckColumnConstraint>)
CompressColumnConstraint(Box<CompressColumnConstraint>)
DateFormatColumnConstraint(Box<DateFormatColumnConstraint>)
EphemeralColumnConstraint(Box<EphemeralColumnConstraint>)
WithOperator(Box<WithOperator>)
GeneratedAsIdentityColumnConstraint(Box<GeneratedAsIdentityColumnConstraint>)
AutoIncrementColumnConstraint(AutoIncrementColumnConstraint)
CommentColumnConstraint(CommentColumnConstraint)
GeneratedAsRowColumnConstraint(Box<GeneratedAsRowColumnConstraint>)
IndexColumnConstraint(Box<IndexColumnConstraint>)
MaskingPolicyColumnConstraint(Box<MaskingPolicyColumnConstraint>)
NotNullColumnConstraint(Box<NotNullColumnConstraint>)
PrimaryKeyColumnConstraint(Box<PrimaryKeyColumnConstraint>)
UniqueColumnConstraint(Box<UniqueColumnConstraint>)
WatermarkColumnConstraint(Box<WatermarkColumnConstraint>)
ComputedColumnConstraint(Box<ComputedColumnConstraint>)
InOutColumnConstraint(Box<InOutColumnConstraint>)
DefaultColumnConstraint(Box<DefaultColumnConstraint>)
PathColumnConstraint(Box<PathColumnConstraint>)
Constraint(Box<Constraint>)
Export(Box<Export>)
Filter(Box<Filter>)
Changes(Box<Changes>)
CopyParameter(Box<CopyParameter>)
Credentials(Box<Credentials>)
Directory(Box<Directory>)
ForeignKey(Box<ForeignKey>)
ColumnPrefix(Box<ColumnPrefix>)
PrimaryKey(Box<PrimaryKey>)
IntoClause(Box<IntoClause>)
JoinHint(Box<JoinHint>)
Opclass(Box<Opclass>)
Index(Box<Index>)
IndexParameters(Box<IndexParameters>)
ConditionalInsert(Box<ConditionalInsert>)
MultitableInserts(Box<MultitableInserts>)
OnConflict(Box<OnConflict>)
OnCondition(Box<OnCondition>)
Returning(Box<Returning>)
Introducer(Box<Introducer>)
PartitionRange(Box<PartitionRange>)
Fetch(Box<Fetch>)
Group(Box<Group>)
Cube(Box<Cube>)
Rollup(Box<Rollup>)
GroupingSets(Box<GroupingSets>)
LimitOptions(Box<LimitOptions>)
Lateral(Box<Lateral>)
TableFromRows(Box<TableFromRows>)
RowsFrom(Box<RowsFrom>)
MatchRecognizeMeasure(Box<MatchRecognizeMeasure>)
WithFill(Box<WithFill>)
Property(Box<Property>)
GrantPrivilege(Box<GrantPrivilege>)
GrantPrincipal(Box<GrantPrincipal>)
AllowedValuesProperty(Box<AllowedValuesProperty>)
AlgorithmProperty(Box<AlgorithmProperty>)
AutoIncrementProperty(Box<AutoIncrementProperty>)
AutoRefreshProperty(Box<AutoRefreshProperty>)
BackupProperty(Box<BackupProperty>)
BuildProperty(Box<BuildProperty>)
BlockCompressionProperty(Box<BlockCompressionProperty>)
CharacterSetProperty(Box<CharacterSetProperty>)
ChecksumProperty(Box<ChecksumProperty>)
CollateProperty(Box<CollateProperty>)
DataBlocksizeProperty(Box<DataBlocksizeProperty>)
DataDeletionProperty(Box<DataDeletionProperty>)
DefinerProperty(Box<DefinerProperty>)
DistKeyProperty(Box<DistKeyProperty>)
DistributedByProperty(Box<DistributedByProperty>)
DistStyleProperty(Box<DistStyleProperty>)
DuplicateKeyProperty(Box<DuplicateKeyProperty>)
EngineProperty(Box<EngineProperty>)
ToTableProperty(Box<ToTableProperty>)
ExecuteAsProperty(Box<ExecuteAsProperty>)
ExternalProperty(Box<ExternalProperty>)
FallbackProperty(Box<FallbackProperty>)
FileFormatProperty(Box<FileFormatProperty>)
CredentialsProperty(Box<CredentialsProperty>)
FreespaceProperty(Box<FreespaceProperty>)
InheritsProperty(Box<InheritsProperty>)
InputModelProperty(Box<InputModelProperty>)
OutputModelProperty(Box<OutputModelProperty>)
IsolatedLoadingProperty(Box<IsolatedLoadingProperty>)
JournalProperty(Box<JournalProperty>)
LanguageProperty(Box<LanguageProperty>)
EnviromentProperty(Box<EnviromentProperty>)
ClusteredByProperty(Box<ClusteredByProperty>)
DictProperty(Box<DictProperty>)
DictRange(Box<DictRange>)
OnCluster(Box<OnCluster>)
LikeProperty(Box<LikeProperty>)
LocationProperty(Box<LocationProperty>)
LockProperty(Box<LockProperty>)
LockingProperty(Box<LockingProperty>)
LogProperty(Box<LogProperty>)
MaterializedProperty(Box<MaterializedProperty>)
MergeBlockRatioProperty(Box<MergeBlockRatioProperty>)
OnProperty(Box<OnProperty>)
OnCommitProperty(Box<OnCommitProperty>)
PartitionedByProperty(Box<PartitionedByProperty>)
PartitionedByBucket(Box<PartitionedByBucket>)
PartitionByTruncate(Box<PartitionByTruncate>)
PartitionByRangeProperty(Box<PartitionByRangeProperty>)
PartitionByRangePropertyDynamic(Box<PartitionByRangePropertyDynamic>)
PartitionByListProperty(Box<PartitionByListProperty>)
PartitionList(Box<PartitionList>)
Partition(Box<Partition>)
RefreshTriggerProperty(Box<RefreshTriggerProperty>)
UniqueKeyProperty(Box<UniqueKeyProperty>)
RollupProperty(Box<RollupProperty>)
PartitionBoundSpec(Box<PartitionBoundSpec>)
PartitionedOfProperty(Box<PartitionedOfProperty>)
RemoteWithConnectionModelProperty(Box<RemoteWithConnectionModelProperty>)
ReturnsProperty(Box<ReturnsProperty>)
RowFormatProperty(Box<RowFormatProperty>)
RowFormatDelimitedProperty(Box<RowFormatDelimitedProperty>)
RowFormatSerdeProperty(Box<RowFormatSerdeProperty>)
QueryTransform(Box<QueryTransform>)
SampleProperty(Box<SampleProperty>)
SecurityProperty(Box<SecurityProperty>)
SchemaCommentProperty(Box<SchemaCommentProperty>)
SemanticView(Box<SemanticView>)
SerdeProperties(Box<SerdeProperties>)
SetProperty(Box<SetProperty>)
SharingProperty(Box<SharingProperty>)
SetConfigProperty(Box<SetConfigProperty>)
SettingsProperty(Box<SettingsProperty>)
SortKeyProperty(Box<SortKeyProperty>)
SqlReadWriteProperty(Box<SqlReadWriteProperty>)
SqlSecurityProperty(Box<SqlSecurityProperty>)
StabilityProperty(Box<StabilityProperty>)
StorageHandlerProperty(Box<StorageHandlerProperty>)
TemporaryProperty(Box<TemporaryProperty>)
Tags(Box<Tags>)
TransformModelProperty(Box<TransformModelProperty>)
TransientProperty(Box<TransientProperty>)
UsingTemplateProperty(Box<UsingTemplateProperty>)
ViewAttributeProperty(Box<ViewAttributeProperty>)
VolatileProperty(Box<VolatileProperty>)
WithDataProperty(Box<WithDataProperty>)
WithJournalTableProperty(Box<WithJournalTableProperty>)
WithSchemaBindingProperty(Box<WithSchemaBindingProperty>)
WithSystemVersioningProperty(Box<WithSystemVersioningProperty>)
WithProcedureOptions(Box<WithProcedureOptions>)
EncodeProperty(Box<EncodeProperty>)
IncludeProperty(Box<IncludeProperty>)
Properties(Box<Properties>)
InputOutputFormat(Box<InputOutputFormat>)
Reference(Box<Reference>)
QueryOption(Box<QueryOption>)
WithTableHint(Box<WithTableHint>)
IndexTableHint(Box<IndexTableHint>)
HistoricalData(Box<HistoricalData>)
Get(Box<Get>)
SetOperation(Box<SetOperation>)
Var(Box<Var>)
Version(Box<Version>)
Schema(Box<Schema>)
Lock(Box<Lock>)
TableSample(Box<TableSample>)
Tag(Box<Tag>)
UnpivotColumns(Box<UnpivotColumns>)
WindowSpec(Box<WindowSpec>)
SessionParameter(Box<SessionParameter>)
PseudoType(Box<PseudoType>)
ObjectIdentifier(Box<ObjectIdentifier>)
Transaction(Box<Transaction>)
Commit(Box<Commit>)
Rollback(Box<Rollback>)
AlterSession(Box<AlterSession>)
Analyze(Box<Analyze>)
AnalyzeStatistics(Box<AnalyzeStatistics>)
AnalyzeHistogram(Box<AnalyzeHistogram>)
AnalyzeSample(Box<AnalyzeSample>)
AnalyzeListChainedRows(Box<AnalyzeListChainedRows>)
AnalyzeDelete(Box<AnalyzeDelete>)
AnalyzeWith(Box<AnalyzeWith>)
AnalyzeValidate(Box<AnalyzeValidate>)
AddPartition(Box<AddPartition>)
AttachOption(Box<AttachOption>)
DropPartition(Box<DropPartition>)
ReplacePartition(Box<ReplacePartition>)
DPipe(Box<DPipe>)
Operator(Box<Operator>)
PivotAny(Box<PivotAny>)
Aliases(Box<Aliases>)
AtIndex(Box<AtIndex>)
FromTimeZone(Box<FromTimeZone>)
FormatPhrase(Box<FormatPhrase>)
ForIn(Box<ForIn>)
TimeUnit(Box<TimeUnit>)
IntervalOp(Box<IntervalOp>)
IntervalSpan(Box<IntervalSpan>)
HavingMax(Box<HavingMax>)
CosineDistance(Box<CosineDistance>)
DotProduct(Box<DotProduct>)
EuclideanDistance(Box<EuclideanDistance>)
ManhattanDistance(Box<ManhattanDistance>)
JarowinklerSimilarity(Box<JarowinklerSimilarity>)
Booland(Box<Booland>)
Boolor(Box<Boolor>)
ParameterizedAgg(Box<ParameterizedAgg>)
ArgMax(Box<ArgMax>)
ArgMin(Box<ArgMin>)
ApproxTopK(Box<ApproxTopK>)
ApproxTopKAccumulate(Box<ApproxTopKAccumulate>)
ApproxTopKCombine(Box<ApproxTopKCombine>)
ApproxTopKEstimate(Box<ApproxTopKEstimate>)
ApproxTopSum(Box<ApproxTopSum>)
ApproxQuantiles(Box<ApproxQuantiles>)
Minhash(Box<Minhash>)
FarmFingerprint(Box<FarmFingerprint>)
Float64(Box<Float64>)
Transform(Box<Transform>)
Translate(Box<Translate>)
Grouping(Box<Grouping>)
GroupingId(Box<GroupingId>)
Anonymous(Box<Anonymous>)
AnonymousAggFunc(Box<AnonymousAggFunc>)
CombinedAggFunc(Box<CombinedAggFunc>)
CombinedParameterizedAgg(Box<CombinedParameterizedAgg>)
HashAgg(Box<HashAgg>)
Hll(Box<Hll>)
Apply(Box<Apply>)
ToBoolean(Box<ToBoolean>)
List(Box<List>)
ToMap(Box<ToMap>)
Pad(Box<Pad>)
ToChar(Box<ToChar>)
ToNumber(Box<ToNumber>)
ToDouble(Box<ToDouble>)
Int64(Box<UnaryFunc>)
StringFunc(Box<StringFunc>)
ToDecfloat(Box<ToDecfloat>)
TryToDecfloat(Box<TryToDecfloat>)
ToFile(Box<ToFile>)
Columns(Box<Columns>)
ConvertToCharset(Box<ConvertToCharset>)
ConvertTimezone(Box<ConvertTimezone>)
GenerateSeries(Box<GenerateSeries>)
AIAgg(Box<AIAgg>)
AIClassify(Box<AIClassify>)
ArrayAll(Box<ArrayAll>)
ArrayAny(Box<ArrayAny>)
ArrayConstructCompact(Box<ArrayConstructCompact>)
StPoint(Box<StPoint>)
StDistance(Box<StDistance>)
StringToArray(Box<StringToArray>)
ArraySum(Box<ArraySum>)
ObjectAgg(Box<ObjectAgg>)
CastToStrType(Box<CastToStrType>)
CheckJson(Box<CheckJson>)
CheckXml(Box<CheckXml>)
TranslateCharacters(Box<TranslateCharacters>)
CurrentSchemas(Box<CurrentSchemas>)
CurrentDatetime(Box<CurrentDatetime>)
Localtime(Box<Localtime>)
Localtimestamp(Box<Localtimestamp>)
Systimestamp(Box<Systimestamp>)
CurrentSchema(Box<CurrentSchema>)
CurrentUser(Box<CurrentUser>)
UtcTime(Box<UtcTime>)
UtcTimestamp(Box<UtcTimestamp>)
Timestamp(Box<TimestampFunc>)
DateBin(Box<DateBin>)
Datetime(Box<Datetime>)
DatetimeAdd(Box<DatetimeAdd>)
DatetimeSub(Box<DatetimeSub>)
DatetimeDiff(Box<DatetimeDiff>)
DatetimeTrunc(Box<DatetimeTrunc>)
Dayname(Box<Dayname>)
MakeInterval(Box<MakeInterval>)
PreviousDay(Box<PreviousDay>)
Elt(Box<Elt>)
TimestampAdd(Box<TimestampAdd>)
TimestampSub(Box<TimestampSub>)
TimestampDiff(Box<TimestampDiff>)
TimeSlice(Box<TimeSlice>)
TimeAdd(Box<TimeAdd>)
TimeSub(Box<TimeSub>)
TimeDiff(Box<TimeDiff>)
TimeTrunc(Box<TimeTrunc>)
DateFromParts(Box<DateFromParts>)
TimeFromParts(Box<TimeFromParts>)
DecodeCase(Box<DecodeCase>)
Decrypt(Box<Decrypt>)
DecryptRaw(Box<DecryptRaw>)
Encode(Box<Encode>)
Encrypt(Box<Encrypt>)
EncryptRaw(Box<EncryptRaw>)
EqualNull(Box<EqualNull>)
ToBinary(Box<ToBinary>)
Base64DecodeBinary(Box<Base64DecodeBinary>)
Base64DecodeString(Box<Base64DecodeString>)
Base64Encode(Box<Base64Encode>)
TryBase64DecodeBinary(Box<TryBase64DecodeBinary>)
TryBase64DecodeString(Box<TryBase64DecodeString>)
GapFill(Box<GapFill>)
GenerateDateArray(Box<GenerateDateArray>)
GenerateTimestampArray(Box<GenerateTimestampArray>)
GetExtract(Box<GetExtract>)
Getbit(Box<Getbit>)
OverflowTruncateBehavior(Box<OverflowTruncateBehavior>)
HexEncode(Box<HexEncode>)
Compress(Box<Compress>)
DecompressBinary(Box<DecompressBinary>)
DecompressString(Box<DecompressString>)
Xor(Box<Xor>)
Nullif(Box<Nullif>)
JSON(Box<JSON>)
JSONPath(Box<JSONPath>)
JSONPathFilter(Box<JSONPathFilter>)
JSONPathKey(Box<JSONPathKey>)
JSONPathRecursive(Box<JSONPathRecursive>)
JSONPathScript(Box<JSONPathScript>)
JSONPathSlice(Box<JSONPathSlice>)
JSONPathSelector(Box<JSONPathSelector>)
JSONPathSubscript(Box<JSONPathSubscript>)
JSONPathUnion(Box<JSONPathUnion>)
Format(Box<Format>)
JSONKeys(Box<JSONKeys>)
JSONKeyValue(Box<JSONKeyValue>)
JSONKeysAtDepth(Box<JSONKeysAtDepth>)
JSONObject(Box<JSONObject>)
JSONObjectAgg(Box<JSONObjectAgg>)
JSONBObjectAgg(Box<JSONBObjectAgg>)
JSONArray(Box<JSONArray>)
JSONArrayAgg(Box<JSONArrayAgg>)
JSONExists(Box<JSONExists>)
JSONColumnDef(Box<JSONColumnDef>)
JSONSchema(Box<JSONSchema>)
JSONSet(Box<JSONSet>)
JSONStripNulls(Box<JSONStripNulls>)
JSONValue(Box<JSONValue>)
JSONValueArray(Box<JSONValueArray>)
JSONRemove(Box<JSONRemove>)
JSONTable(Box<JSONTable>)
JSONType(Box<JSONType>)
ObjectInsert(Box<ObjectInsert>)
OpenJSONColumnDef(Box<OpenJSONColumnDef>)
OpenJSON(Box<OpenJSON>)
JSONBExists(Box<JSONBExists>)
JSONBContains(Box<BinaryFunc>)
JSONBExtract(Box<BinaryFunc>)
JSONCast(Box<JSONCast>)
JSONExtract(Box<JSONExtract>)
JSONExtractQuote(Box<JSONExtractQuote>)
JSONExtractArray(Box<JSONExtractArray>)
JSONExtractScalar(Box<JSONExtractScalar>)
JSONBExtractScalar(Box<JSONBExtractScalar>)
JSONFormat(Box<JSONFormat>)
JSONBool(Box<UnaryFunc>)
JSONPathRoot(JSONPathRoot)
JSONArrayAppend(Box<JSONArrayAppend>)
JSONArrayContains(Box<JSONArrayContains>)
JSONArrayInsert(Box<JSONArrayInsert>)
ParseJSON(Box<ParseJSON>)
ParseUrl(Box<ParseUrl>)
ParseIp(Box<ParseIp>)
ParseTime(Box<ParseTime>)
ParseDatetime(Box<ParseDatetime>)
Map(Box<Map>)
MapCat(Box<MapCat>)
MapDelete(Box<MapDelete>)
MapInsert(Box<MapInsert>)
MapPick(Box<MapPick>)
ScopeResolution(Box<ScopeResolution>)
Slice(Box<Slice>)
VarMap(Box<VarMap>)
MatchAgainst(Box<MatchAgainst>)
MD5Digest(Box<MD5Digest>)
MD5NumberLower64(Box<UnaryFunc>)
MD5NumberUpper64(Box<UnaryFunc>)
Monthname(Box<Monthname>)
Ntile(Box<Ntile>)
Normalize(Box<Normalize>)
Normal(Box<Normal>)
Predict(Box<Predict>)
MLTranslate(Box<MLTranslate>)
FeaturesAtTime(Box<FeaturesAtTime>)
GenerateEmbedding(Box<GenerateEmbedding>)
MLForecast(Box<MLForecast>)
ModelAttribute(Box<ModelAttribute>)
VectorSearch(Box<VectorSearch>)
Quantile(Box<Quantile>)
ApproxQuantile(Box<ApproxQuantile>)
ApproxPercentileEstimate(Box<ApproxPercentileEstimate>)
Randn(Box<Randn>)
Randstr(Box<Randstr>)
RangeN(Box<RangeN>)
RangeBucket(Box<RangeBucket>)
ReadCSV(Box<ReadCSV>)
ReadParquet(Box<ReadParquet>)
Reduce(Box<Reduce>)
RegexpExtractAll(Box<RegexpExtractAll>)
RegexpILike(Box<RegexpILike>)
RegexpFullMatch(Box<RegexpFullMatch>)
RegexpInstr(Box<RegexpInstr>)
RegexpSplit(Box<RegexpSplit>)
RegexpCount(Box<RegexpCount>)
RegrValx(Box<RegrValx>)
RegrValy(Box<RegrValy>)
RegrAvgy(Box<RegrAvgy>)
RegrAvgx(Box<RegrAvgx>)
RegrCount(Box<RegrCount>)
RegrIntercept(Box<RegrIntercept>)
RegrR2(Box<RegrR2>)
RegrSxx(Box<RegrSxx>)
RegrSxy(Box<RegrSxy>)
RegrSyy(Box<RegrSyy>)
RegrSlope(Box<RegrSlope>)
SafeAdd(Box<SafeAdd>)
SafeDivide(Box<SafeDivide>)
SafeMultiply(Box<SafeMultiply>)
SafeSubtract(Box<SafeSubtract>)
SHA2(Box<SHA2>)
SHA2Digest(Box<SHA2Digest>)
SortArray(Box<SortArray>)
SplitPart(Box<SplitPart>)
SubstringIndex(Box<SubstringIndex>)
StandardHash(Box<StandardHash>)
StrPosition(Box<StrPosition>)
Search(Box<Search>)
SearchIp(Box<SearchIp>)
StrToDate(Box<StrToDate>)
DateStrToDate(Box<UnaryFunc>)
DateToDateStr(Box<UnaryFunc>)
StrToTime(Box<StrToTime>)
StrToUnix(Box<StrToUnix>)
StrToMap(Box<StrToMap>)
NumberToStr(Box<NumberToStr>)
FromBase(Box<FromBase>)
Stuff(Box<Stuff>)
TimeToStr(Box<TimeToStr>)
TimeStrToTime(Box<TimeStrToTime>)
TsOrDsAdd(Box<TsOrDsAdd>)
TsOrDsDiff(Box<TsOrDsDiff>)
TsOrDsToDate(Box<TsOrDsToDate>)
TsOrDsToTime(Box<TsOrDsToTime>)
Unhex(Box<Unhex>)
Uniform(Box<Uniform>)
UnixToStr(Box<UnixToStr>)
UnixToTime(Box<UnixToTime>)
Uuid(Box<Uuid>)
TimestampFromParts(Box<TimestampFromParts>)
TimestampTzFromParts(Box<TimestampTzFromParts>)
Corr(Box<Corr>)
WidthBucket(Box<WidthBucket>)
CovarSamp(Box<CovarSamp>)
CovarPop(Box<CovarPop>)
Week(Box<Week>)
XMLElement(Box<XMLElement>)
XMLGet(Box<XMLGet>)
XMLTable(Box<XMLTable>)
XMLKeyValueOption(Box<XMLKeyValueOption>)
Zipf(Box<Zipf>)
Merge(Box<Merge>)
When(Box<When>)
Whens(Box<Whens>)
NextValueFor(Box<NextValueFor>)
ReturnStmt(Box<Expression>)
RETURN statement (DuckDB stored procedures)
Implementations§
Source§impl Expression
impl Expression
Sourcepub fn column(name: impl Into<String>) -> Self
pub fn column(name: impl Into<String>) -> Self
Create an unqualified column reference (e.g. name).
Sourcepub fn qualified_column(
table: impl Into<String>,
column: impl Into<String>,
) -> Self
pub fn qualified_column( table: impl Into<String>, column: impl Into<String>, ) -> Self
Create a qualified column reference (table.column).
Sourcepub fn identifier(name: impl Into<String>) -> Self
pub fn identifier(name: impl Into<String>) -> Self
Create a bare identifier expression (not a column reference).
Sourcepub fn star() -> Self
pub fn star() -> Self
Create a wildcard star (*) expression with no EXCEPT/REPLACE/RENAME modifiers.
Sourcepub fn alias(self, name: impl Into<String>) -> Self
pub fn alias(self, name: impl Into<String>) -> Self
Wrap this expression in an AS alias (e.g. expr AS name).
Sourcepub fn as_select_mut(&mut self) -> Option<&mut Select>
pub fn as_select_mut(&mut self) -> Option<&mut Select>
Try to get as a mutable Select
Sourcepub fn sql(&self) -> String
pub fn sql(&self) -> String
Generate a SQL string for this expression using the generic (dialect-agnostic) generator.
Returns an empty string if generation fails. For dialect-specific output,
use sql_for() instead.
Sourcepub fn sql_for(&self, dialect: DialectType) -> String
pub fn sql_for(&self, dialect: DialectType) -> String
Generate a SQL string for this expression targeting a specific dialect.
Dialect-specific rules (identifier quoting, function names, type mappings, syntax variations) are applied automatically. Returns an empty string if generation fails.
Trait Implementations§
Source§impl Clone for Expression
impl Clone for Expression
Source§fn clone(&self) -> Expression
fn clone(&self) -> Expression
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for Expression
impl Debug for Expression
Source§impl<'de> Deserialize<'de> for Expression
impl<'de> Deserialize<'de> for Expression
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Display for Expression
impl Display for Expression
Source§impl ExpressionWalk for Expression
impl ExpressionWalk for Expression
Source§fn dfs(&self) -> DfsIter<'_> ⓘ
fn dfs(&self) -> DfsIter<'_> ⓘ
Source§fn bfs(&self) -> BfsIter<'_> ⓘ
fn bfs(&self) -> BfsIter<'_> ⓘ
Source§fn find<F>(&self, predicate: F) -> Option<&Expression>
fn find<F>(&self, predicate: F) -> Option<&Expression>
predicate in depth-first order. Read moreSource§fn find_all<F>(&self, predicate: F) -> Vec<&Expression>
fn find_all<F>(&self, predicate: F) -> Vec<&Expression>
predicate in depth-first order. Read moreSource§fn contains<F>(&self, predicate: F) -> bool
fn contains<F>(&self, predicate: F) -> bool
true if this node or any descendant matches predicate.Source§fn count<F>(&self, predicate: F) -> usize
fn count<F>(&self, predicate: F) -> usize
predicate.