pub enum TypedFunction {
Show 72 variants
DateAdd {
expr: Box<Expr>,
interval: Box<Expr>,
unit: Option<DateTimeField>,
},
DateDiff {
start: Box<Expr>,
end: Box<Expr>,
unit: Option<DateTimeField>,
},
DateTrunc {
unit: DateTimeField,
expr: Box<Expr>,
},
DateSub {
expr: Box<Expr>,
interval: Box<Expr>,
unit: Option<DateTimeField>,
},
CurrentDate,
CurrentTimestamp,
StrToTime {
expr: Box<Expr>,
format: Box<Expr>,
},
TimeToStr {
expr: Box<Expr>,
format: Box<Expr>,
},
TsOrDsToDate {
expr: Box<Expr>,
},
Year {
expr: Box<Expr>,
},
Month {
expr: Box<Expr>,
},
Day {
expr: Box<Expr>,
},
Trim {
expr: Box<Expr>,
trim_type: TrimType,
trim_chars: Option<Box<Expr>>,
},
Substring {
expr: Box<Expr>,
start: Box<Expr>,
length: Option<Box<Expr>>,
},
Upper {
expr: Box<Expr>,
},
Lower {
expr: Box<Expr>,
},
RegexpLike {
expr: Box<Expr>,
pattern: Box<Expr>,
flags: Option<Box<Expr>>,
},
RegexpExtract {
expr: Box<Expr>,
pattern: Box<Expr>,
group_index: Option<Box<Expr>>,
},
RegexpReplace {
expr: Box<Expr>,
pattern: Box<Expr>,
replacement: Box<Expr>,
flags: Option<Box<Expr>>,
},
ConcatWs {
separator: Box<Expr>,
exprs: Vec<Expr>,
},
Split {
expr: Box<Expr>,
delimiter: Box<Expr>,
},
Initcap {
expr: Box<Expr>,
},
Length {
expr: Box<Expr>,
},
Replace {
expr: Box<Expr>,
from: Box<Expr>,
to: Box<Expr>,
},
Reverse {
expr: Box<Expr>,
},
Left {
expr: Box<Expr>,
n: Box<Expr>,
},
Right {
expr: Box<Expr>,
n: Box<Expr>,
},
Lpad {
expr: Box<Expr>,
length: Box<Expr>,
pad: Option<Box<Expr>>,
},
Rpad {
expr: Box<Expr>,
length: Box<Expr>,
pad: Option<Box<Expr>>,
},
Count {
expr: Box<Expr>,
distinct: bool,
},
Sum {
expr: Box<Expr>,
distinct: bool,
},
Avg {
expr: Box<Expr>,
distinct: bool,
},
Min {
expr: Box<Expr>,
},
Max {
expr: Box<Expr>,
},
ArrayAgg {
expr: Box<Expr>,
distinct: bool,
},
ApproxDistinct {
expr: Box<Expr>,
},
Variance {
expr: Box<Expr>,
},
Stddev {
expr: Box<Expr>,
},
ArrayConcat {
arrays: Vec<Expr>,
},
ArrayContains {
array: Box<Expr>,
element: Box<Expr>,
},
ArraySize {
expr: Box<Expr>,
},
Explode {
expr: Box<Expr>,
},
GenerateSeries {
start: Box<Expr>,
stop: Box<Expr>,
step: Option<Box<Expr>>,
},
Flatten {
expr: Box<Expr>,
},
JSONExtract {
expr: Box<Expr>,
path: Box<Expr>,
},
JSONExtractScalar {
expr: Box<Expr>,
path: Box<Expr>,
},
ParseJSON {
expr: Box<Expr>,
},
JSONFormat {
expr: Box<Expr>,
},
RowNumber,
Rank,
DenseRank,
NTile {
n: Box<Expr>,
},
Lead {
expr: Box<Expr>,
offset: Option<Box<Expr>>,
default: Option<Box<Expr>>,
},
Lag {
expr: Box<Expr>,
offset: Option<Box<Expr>>,
default: Option<Box<Expr>>,
},
FirstValue {
expr: Box<Expr>,
},
LastValue {
expr: Box<Expr>,
},
Abs {
expr: Box<Expr>,
},
Ceil {
expr: Box<Expr>,
},
Floor {
expr: Box<Expr>,
},
Round {
expr: Box<Expr>,
decimals: Option<Box<Expr>>,
},
Log {
expr: Box<Expr>,
base: Option<Box<Expr>>,
},
Ln {
expr: Box<Expr>,
},
Pow {
base: Box<Expr>,
exponent: Box<Expr>,
},
Sqrt {
expr: Box<Expr>,
},
Greatest {
exprs: Vec<Expr>,
},
Least {
exprs: Vec<Expr>,
},
Mod {
left: Box<Expr>,
right: Box<Expr>,
},
Hex {
expr: Box<Expr>,
},
Unhex {
expr: Box<Expr>,
},
Md5 {
expr: Box<Expr>,
},
Sha {
expr: Box<Expr>,
},
Sha2 {
expr: Box<Expr>,
bit_length: Box<Expr>,
},
}Expand description
Typed function variants enabling per-function transpilation rules, function signature validation, and dialect-specific code generation.
Each variant carries semantically typed arguments rather than a generic
Vec<Expr>, allowing the generator to emit dialect-specific SQL.
Variants§
DateAdd
DATE_ADD(expr, interval) — add an interval to a date/timestamp
DateDiff
DATE_DIFF(start, end) — difference between two dates
DateTrunc
DATE_TRUNC(unit, expr) — truncate to the given precision
DateSub
DATE_SUB(expr, interval) — subtract an interval from a date
CurrentDate
CURRENT_DATE
CurrentTimestamp
CURRENT_TIMESTAMP / NOW() / GETDATE()
StrToTime
STR_TO_TIME(expr, format) / TO_TIMESTAMP / PARSE_DATETIME
TimeToStr
TIME_TO_STR(expr, format) / DATE_FORMAT / FORMAT_DATETIME
TsOrDsToDate
TS_OR_DS_TO_DATE(expr) — convert timestamp or date-string to date
Year
YEAR(expr) — extract year from a date/timestamp
Month
MONTH(expr) — extract month from a date/timestamp
Day
DAY(expr) — extract day from a date/timestamp
Trim
TRIM([LEADING|TRAILING|BOTH] [chars FROM] expr)
Substring
SUBSTRING(expr, start [, length]) / SUBSTR
Upper
UPPER(expr) / UCASE
Lower
LOWER(expr) / LCASE
RegexpLike
REGEXP_LIKE(expr, pattern [, flags]) / ~ (Postgres)
RegexpExtract
REGEXP_EXTRACT(expr, pattern [, group_index])
RegexpReplace
REGEXP_REPLACE(expr, pattern, replacement [, flags])
ConcatWs
CONCAT_WS(separator, expr, ...)
Split
SPLIT(expr, delimiter) / STRING_SPLIT
Initcap
INITCAP(expr) — capitalize first letter of each word
Length
LENGTH(expr) / LEN
Replace
REPLACE(expr, from, to)
Reverse
REVERSE(expr)
Left
LEFT(expr, n)
Right
RIGHT(expr, n)
Lpad
LPAD(expr, length [, pad])
Rpad
RPAD(expr, length [, pad])
Count
COUNT(expr) or COUNT(DISTINCT expr) or COUNT(*)
Sum
SUM([DISTINCT] expr)
Avg
AVG([DISTINCT] expr)
Min
MIN(expr)
Max
MAX(expr)
ArrayAgg
ARRAY_AGG([DISTINCT] expr) / LIST / COLLECT_LIST
ApproxDistinct
APPROX_DISTINCT(expr) / APPROX_COUNT_DISTINCT
Variance
VARIANCE(expr) / VAR_SAMP
Stddev
STDDEV(expr) / STDDEV_SAMP
ArrayConcat
ARRAY_CONCAT(arr1, arr2) / ARRAY_CAT
ArrayContains
ARRAY_CONTAINS(array, element) / ARRAY_POSITION
ArraySize
ARRAY_SIZE(expr) / ARRAY_LENGTH / CARDINALITY
Explode
EXPLODE(expr) — Hive/Spark array expansion
GenerateSeries
GENERATE_SERIES(start, stop [, step])
Flatten
FLATTEN(expr) — flatten nested arrays
JSONExtract
JSON_EXTRACT(expr, path) / JSON_VALUE / -> (Postgres)
JSONExtractScalar
JSON_EXTRACT_SCALAR(expr, path) / ->>
ParseJSON
PARSE_JSON(expr) / JSON_PARSE
JSONFormat
JSON_FORMAT(expr) / TO_JSON
RowNumber
ROW_NUMBER()
Rank
RANK()
DenseRank
DENSE_RANK()
NTile
NTILE(n)
Lead
LEAD(expr [, offset [, default]])
Lag
LAG(expr [, offset [, default]])
FirstValue
FIRST_VALUE(expr)
LastValue
LAST_VALUE(expr)
Abs
ABS(expr)
Ceil
CEIL(expr) / CEILING
Floor
FLOOR(expr)
Round
ROUND(expr [, decimals])
Log
LOG(expr [, base]) — semantics vary by dialect
Ln
LN(expr) — natural logarithm
Pow
POW(base, exponent) / POWER
Sqrt
SQRT(expr)
Greatest
GREATEST(expr, ...)
Least
LEAST(expr, ...)
Mod
MOD(a, b) — modulo function
Hex
HEX(expr) / TO_HEX
Unhex
UNHEX(expr) / FROM_HEX
Md5
MD5(expr)
Sha
SHA(expr) / SHA1
Sha2
SHA2(expr, bit_length) — SHA-256/SHA-512
Implementations§
Source§impl TypedFunction
impl TypedFunction
Sourcepub fn walk_children<F>(&self, visitor: &mut F)
pub fn walk_children<F>(&self, visitor: &mut F)
Walk child expressions, calling visitor on each.
Sourcepub fn transform_children<F>(self, func: &F) -> TypedFunction
pub fn transform_children<F>(self, func: &F) -> TypedFunction
Transform child expressions, returning a new TypedFunction.
Trait Implementations§
Source§impl Clone for TypedFunction
impl Clone for TypedFunction
Source§fn clone(&self) -> TypedFunction
fn clone(&self) -> TypedFunction
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more