Skip to main content

Expression

Enum Expression 

Source
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

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

Trait Implementations§

Source§

impl Clone for Expression

Source§

fn clone(&self) -> Expression

Returns a duplicate of the value. Read more
1.0.0 · 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: &Expression) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
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> 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 = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.
Source§

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