Skip to main content

Expression

Enum Expression 

Source
pub enum Expression {
Show 932 variants Vertica(Box<VerticaExpression>), Literal(Box<Literal>), Boolean(BooleanLiteral), Null(Null), Identifier(Identifier), Column(Box<Column>), Table(Box<TableRef>), Star(Star), BracedWildcard(Box<Expression>), Select(Box<Select>), Union(Box<Union>), Intersect(Box<Intersect>), Except(Box<Except>), Subquery(Box<Subquery>), PipeOperator(Box<PipeOperator>), 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>), TryCatch(Box<TryCatch>), 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>), Upsert(Box<Upsert>), StorageProperty(Box<StorageProperty>), Hierarchy(Box<Hierarchy>), ViewParameter(Box<ViewParameter>), Call(Box<Call>), 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<VarArgFunc>), 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>), FunctionEmits(Box<FunctionEmits>), 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>), Undrop(Box<Undrop>), AlterTable(Box<AlterTable>), SplitTable(Box<SplitTable>), FlashbackTable(Box<FlashbackTable>), 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>), CreateSynonym(Box<CreateSynonym>), 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>), Prepare(Box<PrepareStatement>), Execute(Box<ExecuteStatement>), CreateTask(Box<CreateTask>), 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>), AssumeColumnConstraint(Box<AssumeColumnConstraint>), 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>), PartitionByProperty(Box<PartitionByProperty>), PartitionedByBucket(Box<PartitionedByBucket>), ClusterByColumnsProperty(Box<ClusterByColumnsProperty>), 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>), OptionsProperty(Box<OptionsProperty>), 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>), Variadic(Box<Variadic>), 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§

§

Vertica(Box<VerticaExpression>)

Structured Vertica syntax whose semantics are not shared by other dialects.

§

Literal(Box<Literal>)

§

Boolean(BooleanLiteral)

§

Null(Null)

§

Identifier(Identifier)

§

Column(Box<Column>)

§

Table(Box<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>)

§

PipeOperator(Box<PipeOperator>)

§

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>)

§

TryCatch(Box<TryCatch>)

§

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>)

§

Upsert(Box<Upsert>)

§

StorageProperty(Box<StorageProperty>)

§

Hierarchy(Box<Hierarchy>)

§

ViewParameter(Box<ViewParameter>)

§

Call(Box<Call>)

§

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<VarArgFunc>)

§

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>)

§

FunctionEmits(Box<FunctionEmits>)

§

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>)

§

Undrop(Box<Undrop>)

§

AlterTable(Box<AlterTable>)

§

SplitTable(Box<SplitTable>)

§

FlashbackTable(Box<FlashbackTable>)

§

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>)

§

CreateSynonym(Box<CreateSynonym>)

§

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>)

§

Prepare(Box<PrepareStatement>)

PREPARE statement (PostgreSQL/generic prepared statement definition)

§

Execute(Box<ExecuteStatement>)

EXEC/EXECUTE statement (TSQL stored procedure call)

§

CreateTask(Box<CreateTask>)

Snowflake CREATE TASK statement

§

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>)

§

AssumeColumnConstraint(Box<AssumeColumnConstraint>)

§

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>)

§

PartitionByProperty(Box<PartitionByProperty>)

§

PartitionedByBucket(Box<PartitionedByBucket>)

§

ClusterByColumnsProperty(Box<ClusterByColumnsProperty>)

§

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>)

§

OptionsProperty(Box<OptionsProperty>)

§

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>)

§

Variadic(Box<Variadic>)

§

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

Source

pub fn source_dialect(&self) -> Option<DialectType>

Source semantics that still require dialect-aware lowering. This metadata survives JSON serialization and never changes generic traversal behavior.

Source

pub fn boxed_column(col: Column) -> Self

Create a Column variant, boxing the value automatically.

Source

pub fn boxed_table(t: TableRef) -> Self

Create a Table variant, boxing the value automatically.

Source

pub fn is_statement(&self) -> bool

Returns true if this expression is a valid top-level SQL statement.

Bare expressions like identifiers, literals, and function calls are not valid statements. This is used by validate() to reject inputs like SELECT scooby dooby doo which the parser splits into SELECT scooby AS dooby plus the bare identifier doo.

Source

pub fn number(n: i64) -> Self

Create a literal number expression from an integer.

Source

pub fn string(s: impl Into<String>) -> Self

Create a single-quoted literal string expression.

Source

pub fn float(f: f64) -> Self

Create a literal number expression from a float.

Source

pub fn inferred_type(&self) -> Option<&DataType>

Get the inferred type annotation, if present.

For value-producing expressions with an inferred_type field, returns the stored type. For literals and boolean constants, computes the type on the fly from the variant. For DDL/clause expressions, returns None.

Source

pub fn set_inferred_type(&mut self, dt: DataType)

Set the inferred type annotation on this expression.

Only has an effect on value-producing expressions with an inferred_type field. For other expression types, this is a no-op.

Source

pub fn column(name: impl Into<String>) -> Self

Create an unqualified column reference (e.g. name).

Source

pub fn qualified_column( table: impl Into<String>, column: impl Into<String>, ) -> Self

Create a qualified column reference (table.column).

Source

pub fn identifier(name: impl Into<String>) -> Self

Create a bare identifier expression (not a column reference).

Source

pub fn null() -> Self

Create a NULL expression

Source

pub fn true_() -> Self

Create a TRUE expression

Source

pub fn false_() -> Self

Create a FALSE expression

Source

pub fn star() -> Self

Create a wildcard star (*) expression with no EXCEPT/REPLACE/RENAME modifiers.

Source

pub fn alias(self, name: impl Into<String>) -> Self

Wrap this expression in an AS alias (e.g. expr AS name).

Source

pub fn is_select(&self) -> bool

Check if this is a SELECT expression

Source

pub fn as_select(&self) -> Option<&Select>

Try to get as a Select

Source

pub fn as_select_mut(&mut self) -> Option<&mut Select>

Try to get as a mutable Select

Source

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.

Source

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.

Source§

impl Expression

Source

pub fn variant_name(&self) -> &'static str

Returns the serde-compatible snake_case variant name without serialization. This is much faster than serializing to JSON and extracting the key.

Source

pub fn get_this(&self) -> Option<&Expression>

Returns the primary child expression (“.this” in sqlglot).

Source

pub fn get_expression(&self) -> Option<&Expression>

Returns the secondary child expression (“.expression” in sqlglot).

Source

pub fn get_expressions(&self) -> &[Expression]

Returns the list of child expressions (“.expressions” in sqlglot).

Source

pub fn get_name(&self) -> &str

Returns the name of this expression as a string slice.

Source

pub fn get_alias(&self) -> &str

Returns the alias name if this expression has one.

Source

pub fn get_output_name(&self) -> &str

Returns the output name of this expression (what it shows up as in a SELECT).

Source

pub fn get_comments(&self) -> Vec<&str>

Returns comments attached to this expression.

Trait Implementations§

Source§

impl Clone for Expression

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Expression

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for Expression

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Display for Expression

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl ExpressionWalk for Expression

Source§

fn dfs(&self) -> DfsIter<'_> ⓘ

Returns a depth-first (pre-order) iterator over this expression and all descendants. Read more
Source§

fn bfs(&self) -> BfsIter<'_> ⓘ

Returns a breadth-first (level-order) iterator over this expression and all descendants. Read more
Source§

fn find<F>(&self, predicate: F) -> Option<&Expression>
where F: Fn(&Expression) -> bool,

Finds the first expression matching predicate in depth-first order. Read more
Source§

fn find_all<F>(&self, predicate: F) -> Vec<&Expression>
where F: Fn(&Expression) -> bool,

Collects all expressions matching predicate in depth-first order. Read more
Source§

fn contains<F>(&self, predicate: F) -> bool
where F: Fn(&Expression) -> bool,

Returns true if this node or any descendant matches predicate.
Source§

fn count<F>(&self, predicate: F) -> usize
where F: Fn(&Expression) -> bool,

Counts how many nodes (including this one) match predicate.
Source§

fn children(&self) -> Vec<&Expression>

Returns direct child expressions of this node. Read more
Source§

fn tree_depth(&self) -> usize

Returns the maximum depth of the expression tree rooted at this node. Read more
Source§

fn transform_owned<F>(self, fun: F) -> Result<Expression>

Transforms this expression tree bottom-up using the given function (owned variant). Read more
Source§

impl IntoExpr for Expression

Source§

fn into_expr(self) -> Expr

Wrap a raw Expression in an Expr.

Source§

impl PartialEq for Expression

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for Expression

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for Expression

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.