Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Function catalog

All 165 portable scalar functions have a DuckDB and PostgreSQL SQL path. The table describes the supported scope for each engine; availability is checked for each call’s argument types and options. See Portable scalar functions for usage and native fallback.

FunctionDuckDB SQLPostgreSQL SQLDuckDB scope / reasonPostgreSQL scope / reason
fn.absmapped*mapped*Numeric mapping with native result width and domain guardsNumeric mapping with native result width and domain guards
fn.acosmapped*mapped*Numeric mapping with native result width and domain guardsNumeric mapping with native result width and domain guards
fn.acoshmapped*mapped*Numeric mapping with native result width and domain guardsNumeric mapping with native result width and domain guards
fn.array_any_valuemapped*mapped*Flat boolean, signed-integer, or text lists; nulls, duplicates, and native order preservedFlat boolean, signed-integer, or text lists; nulls, duplicates, and native order preserved
fn.array_appendmapped*mapped*Flat boolean, signed-integer, or text lists; nulls, duplicates, and native order preservedFlat boolean, signed-integer, or text lists; nulls, duplicates, and native order preserved
fn.array_concatmapped*mapped*Two flat lists; null lists are treated as emptyTwo flat lists; null lists are treated as empty
fn.array_dimsmapped*mapped*Flat boolean, signed-integer, or text lists; nulls, duplicates, and native order preservedFlat boolean, signed-integer, or text lists; nulls, duplicates, and native order preserved
fn.array_distancemapped*mapped*Flat signed-integer lists; null elements propagate; unequal lengths failFlat signed-integer lists; null elements propagate; unequal lengths fail
fn.array_distinctmapped*mapped*Flat boolean, signed-integer, or text lists; nulls, duplicates, and native order preservedFlat boolean, signed-integer, or text lists; nulls, duplicates, and native order preserved
fn.array_elementmapped*mapped*Flat boolean, signed-integer, or text lists; nulls, duplicates, and native order preservedFlat boolean, signed-integer, or text lists; nulls, duplicates, and native order preserved
fn.array_exceptmapped*mapped*Flat boolean, signed-integer, or text lists; nulls, duplicates, and native order preservedFlat boolean, signed-integer, or text lists; nulls, duplicates, and native order preserved
fn.array_hasmapped*mapped*Flat boolean, signed-integer, or text lists; nulls, duplicates, and native order preservedFlat boolean, signed-integer, or text lists; nulls, duplicates, and native order preserved
fn.array_has_allmapped*mapped*Flat boolean, signed-integer, or text lists; nulls, duplicates, and native order preservedFlat boolean, signed-integer, or text lists; nulls, duplicates, and native order preserved
fn.array_has_anymapped*mapped*Flat boolean, signed-integer, or text lists; nulls, duplicates, and native order preservedFlat boolean, signed-integer, or text lists; nulls, duplicates, and native order preserved
fn.array_intersectmapped*mapped*Flat boolean, signed-integer, or text lists; nulls, duplicates, and native order preservedFlat boolean, signed-integer, or text lists; nulls, duplicates, and native order preserved
fn.array_lengthmapped*mapped*Flat boolean, signed-integer, or text lists; nulls, duplicates, and native order preservedFlat boolean, signed-integer, or text lists; nulls, duplicates, and native order preserved
fn.array_maxmapped*mapped*Flat lists; PostgreSQL text ordering stays native because it depends on collationFlat lists; PostgreSQL text ordering stays native because it depends on collation
fn.array_minmapped*mapped*Flat lists; PostgreSQL text ordering stays native because it depends on collationFlat lists; PostgreSQL text ordering stays native because it depends on collation
fn.array_ndimsmapped*mapped*Flat boolean, signed-integer, or text lists; nulls, duplicates, and native order preservedFlat boolean, signed-integer, or text lists; nulls, duplicates, and native order preserved
fn.array_pop_backmapped*mapped*Flat boolean, signed-integer, or text lists; nulls, duplicates, and native order preservedFlat boolean, signed-integer, or text lists; nulls, duplicates, and native order preserved
fn.array_pop_frontmapped*mapped*Flat boolean, signed-integer, or text lists; nulls, duplicates, and native order preservedFlat boolean, signed-integer, or text lists; nulls, duplicates, and native order preserved
fn.array_positionmapped*mapped*Flat list; optional positive literal start positionFlat list; optional positive literal start position
fn.array_positionsmapped*mapped*Flat boolean, signed-integer, or text lists; nulls, duplicates, and native order preservedFlat boolean, signed-integer, or text lists; nulls, duplicates, and native order preserved
fn.array_prependmapped*mapped*Flat boolean, signed-integer, or text lists; nulls, duplicates, and native order preservedFlat boolean, signed-integer, or text lists; nulls, duplicates, and native order preserved
fn.array_removemapped*mapped*Flat boolean, signed-integer, or text lists; nulls, duplicates, and native order preservedFlat boolean, signed-integer, or text lists; nulls, duplicates, and native order preserved
fn.array_remove_allmapped*mapped*Flat boolean, signed-integer, or text lists; nulls, duplicates, and native order preservedFlat boolean, signed-integer, or text lists; nulls, duplicates, and native order preserved
fn.array_remove_nmapped*mapped*Flat lists with a non-null literal count; native zero/negative count semantics preservedFlat lists with a non-null literal count; native zero/negative count semantics preserved
fn.array_repeatmapped*mapped*Flat/scalar values with nonnegative literal sizeFlat/scalar values with nonnegative literal size
fn.array_replacemapped*mapped*Flat boolean, signed-integer, or text lists; nulls, duplicates, and native order preservedFlat boolean, signed-integer, or text lists; nulls, duplicates, and native order preserved
fn.array_replace_allmapped*mapped*Flat boolean, signed-integer, or text lists; nulls, duplicates, and native order preservedFlat boolean, signed-integer, or text lists; nulls, duplicates, and native order preserved
fn.array_replace_nmapped*mapped*Flat lists with a non-null literal count; native zero/negative count semantics preservedFlat lists with a non-null literal count; native zero/negative count semantics preserved
fn.array_resizemapped*mapped*Flat/scalar values with nonnegative literal sizeFlat/scalar values with nonnegative literal size
fn.array_reversemapped*mapped*Flat boolean, signed-integer, or text lists; nulls, duplicates, and native order preservedFlat boolean, signed-integer, or text lists; nulls, duplicates, and native order preserved
fn.array_slicemapped*mapped*Flat lists; three arguments or a positive literal strideFlat lists; three arguments or a positive literal stride
fn.array_sortmapped*mapped*Flat lists with literal ASC/DESC and NULLS FIRST/LAST; PostgreSQL text collation stays nativeFlat lists with literal ASC/DESC and NULLS FIRST/LAST; PostgreSQL text collation stays native
fn.array_to_stringmapped*mapped*Text lists only; numeric/boolean formatting differs between enginesText lists only; numeric/boolean formatting differs between engines
fn.array_unionmapped*mapped*Flat boolean, signed-integer, or text lists; nulls, duplicates, and native order preservedFlat boolean, signed-integer, or text lists; nulls, duplicates, and native order preserved
fn.arrays_zipmapped*mapped*Type-directed field names and nested values; native DuckDB records and schema-directed PostgreSQL JSONBType-directed field names and nested values; native DuckDB records and schema-directed PostgreSQL JSONB
fn.arrow_castlowered*lowered*Preparation lowers the Arrow type-name cast to a typed Cast expression; no runtime SQL UDFPreparation lowers the Arrow type-name cast to a typed Cast expression; no runtime SQL UDF
fn.arrow_metadatalowered*lowered*Preparation evaluates Arrow schema/type metadata; SQL values do not carry Arrow field metadataPreparation evaluates Arrow schema/type metadata; SQL values do not carry Arrow field metadata
fn.arrow_typeoflowered*lowered*Preparation evaluates Arrow schema/type metadata; SQL values do not carry Arrow field metadataPreparation evaluates Arrow schema/type metadata; SQL values do not carry Arrow field metadata
fn.asciimapped*mapped*String/code-point mapping; native argument/result types retainedString/code-point mapping; native argument/result types retained
fn.asinmapped*mapped*Numeric mapping with native result width and domain guardsNumeric mapping with native result width and domain guards
fn.asinhmapped*mapped*Numeric mapping with native result width and domain guardsNumeric mapping with native result width and domain guards
fn.atanmapped*mapped*Numeric mapping with native result width and domain guardsNumeric mapping with native result width and domain guards
fn.atan2mapped*mapped*Numeric mapping with native result width and domain guardsNumeric mapping with native result width and domain guards
fn.atanhmapped*mapped*Numeric mapping with native result width and domain guardsNumeric mapping with native result width and domain guards
fn.bit_lengthmapped*mapped*String/code-point mapping; native argument/result types retainedString/code-point mapping; native argument/result types retained
fn.btrimmapped*mapped*String/code-point mapping; native argument/result types retainedString/code-point mapping; native argument/result types retained
fn.cardinalitymapped*mapped*Flat boolean, signed-integer, or text lists; nulls, duplicates, and native order preservedFlat boolean, signed-integer, or text lists; nulls, duplicates, and native order preserved
fn.cbrtmapped*mapped*Numeric mapping with native result width and domain guardsNumeric mapping with native result width and domain guards
fn.ceilmapped*mapped*Numeric mapping with native result width and domain guardsNumeric mapping with native result width and domain guards
fn.character_lengthmapped*mapped*String/code-point mapping; native argument/result types retainedString/code-point mapping; native argument/result types retained
fn.chrmapped*mapped*Unicode scalar conversion with native UInt32 wrappingLiteral non-NUL Unicode scalar after UInt32 wrapping; PostgreSQL text cannot contain NUL
fn.coalescemapped*mapped*Variadic/null semantics preserved; backend value/type representability still appliesVariadic/null semantics preserved; backend value/type representability still applies
fn.concatmapped*mapped*Variadic/null semantics preserved; backend value/type representability still appliesVariadic/null semantics preserved; backend value/type representability still applies
fn.concat_wsmapped*mapped*Variadic/null semantics preserved; backend value/type representability still appliesVariadic/null semantics preserved; backend value/type representability still applies
fn.containsmapped*mapped*String/code-point mapping; native argument/result types retainedString/code-point mapping; native argument/result types retained
fn.cosmapped*mapped*Numeric mapping with native result width and domain guardsNumeric mapping with native result width and domain guards
fn.coshmapped*mapped*Float64 with native special-value/domain/overflow handlingFloat64 with native special-value/domain/overflow handling
fn.cotmapped*mapped*Float64 with native special-value/domain/overflow handlingFloat64 with native special-value/domain/overflow handling
fn.current_datelowered*lowered*Stable calls are bound during query preparationStable calls are bound during query preparation
fn.current_timelowered*lowered*Stable calls are bound during query preparationStable calls are bound during query preparation
fn.date_binmapped*mapped*Three arguments: positive fixed microsecond interval and timezone-free microsecond source/originThree arguments: positive fixed microsecond interval and timezone-free microsecond source/origin
fn.date_partmapped*mapped*Supported literal units on timezone-free timestamps of at most microsecond precisionSupported literal units on timezone-free timestamps of at most microsecond precision
fn.date_truncmapped*mapped*Supported literal units on timezone-free timestamps of at most microsecond precisionSupported literal units on timezone-free timestamps of at most microsecond precision
fn.decodemapped*mapped*Strict hex/base64/base64pad decoding with native padding and trailing-bit validationStrict hex/base64/base64pad decoding with native padding and trailing-bit validation
fn.degreesmapped*mapped*Numeric mapping with native result width and domain guardsNumeric mapping with native result width and domain guards
fn.digestmapped*mapped*Literal md5/sha224/sha256/sha384/sha512; type-directed algorithm specializationLiteral md5/sha224/sha256/sha384/sha512; type-directed algorithm specialization
fn.emptymapped*mapped*Flat boolean, signed-integer, or text lists; nulls, duplicates, and native order preservedFlat boolean, signed-integer, or text lists; nulls, duplicates, and native order preserved
fn.encodemapped*mapped*Literal hex/base64/base64pad format; binary or UTF-8 text inputLiteral hex/base64/base64pad format; binary or UTF-8 text input
fn.ends_withmapped*mapped*String/code-point mapping; native argument/result types retainedString/code-point mapping; native argument/result types retained
fn.expmapped*mapped*Float64 with native special-value/domain/overflow handlingFloat64 with native special-value/domain/overflow handling
fn.factorialmapped*mapped*Numeric mapping with native result width and domain guardsNumeric mapping with native result width and domain guards
fn.find_in_setmapped*mapped*String/code-point mapping; native argument/result types retainedString/code-point mapping; native argument/result types retained
fn.flattenmapped*mapped*Flat boolean, signed-integer, or text lists; nulls, duplicates, and native order preservedFlat boolean, signed-integer, or text lists; nulls, duplicates, and native order preserved
fn.floormapped*mapped*Numeric mapping with native result width and domain guardsNumeric mapping with native result width and domain guards
fn.from_unixtimemapped*mapped*Single Int64 epoch argument; text parsing and timezone overloads stay native; database timestamp range appliesSingle Int64 epoch argument; text parsing and timezone overloads stay native; database timestamp range applies
fn.gcdmapped*mapped*Numeric mapping with native result width and domain guardsNumeric mapping with native result width and domain guards
fn.generate_seriesmapped*mapped*Int64 bounds and optional nonzero literal step; endpoint inclusion preservedInt64 bounds and optional nonzero literal step; endpoint inclusion preserved
fn.get_fieldmapped*mapped*Type-directed field names and nested values; native DuckDB records and schema-directed PostgreSQL JSONBType-directed field names and nested values; native DuckDB records and schema-directed PostgreSQL JSONB
fn.greatestmapped*mapped*Variadic/null semantics preserved; backend value/type representability still appliesVariadic/null semantics preserved; backend value/type representability still applies
fn.initcapmapped*mapped*Rust Unicode alphanumeric word boundaries and per-character case conversionRust Unicode alphanumeric word boundaries and per-character case conversion
fn.isnanmapped*mapped*Numeric mapping with native result width and domain guardsNumeric mapping with native result width and domain guards
fn.iszeromapped*mapped*Numeric mapping with native result width and domain guardsNumeric mapping with native result width and domain guards
fn.lcmmapped*mapped*Numeric mapping with native result width and domain guardsNumeric mapping with native result width and domain guards
fn.leastmapped*mapped*Variadic/null semantics preserved; backend value/type representability still appliesVariadic/null semantics preserved; backend value/type representability still applies
fn.leftmapped*mapped*Literal Int32-range position/count; substring length must be nonnegativeLiteral Int32-range position/count; substring length must be nonnegative
fn.levenshteinmapped*mapped*Unicode code-point edit distance using a recursive SQL dynamic-programming rowUnicode code-point edit distance using a recursive SQL dynamic-programming row
fn.lnmapped*mapped*Numeric mapping with native result width and domain guardsNumeric mapping with native result width and domain guards
fn.logmapped*mapped*Numeric mapping with native result width and domain guardsNumeric mapping with native result width and domain guards
fn.log10mapped*mapped*Numeric mapping with native result width and domain guardsNumeric mapping with native result width and domain guards
fn.log2mapped*mapped*Numeric mapping with native result width and domain guardsNumeric mapping with native result width and domain guards
fn.lowermapped*mapped*Rust Unicode full case conversion, including expansions and contextual final sigmaRust Unicode full case conversion, including expansions and contextual final sigma
fn.lpadmapped*mapped*Unicode 17 grapheme truncation and code-point padding; literal Int32-range lengthUnicode 17 grapheme truncation and code-point padding; literal Int32-range length
fn.ltrimmapped*mapped*String/code-point mapping; native argument/result types retainedString/code-point mapping; native argument/result types retained
fn.make_arraymapped*mapped*One or more scalar boolean, signed-integer, or text argumentsOne or more scalar boolean, signed-integer, or text arguments
fn.make_datemapped*mapped*Integer year/month/day construction within database date rangeInteger year/month/day construction within database date range
fn.make_timemapped*mapped*Integer hour and literal minute/second in 0..59Integer hour and literal minute/second in 0..59
fn.mapmapped*mapped*Typed maps; DuckDB native MAP and PostgreSQL ordered JSONB entries with exact scalar leavesTyped maps; DuckDB native MAP and PostgreSQL ordered JSONB entries with exact scalar leaves
fn.map_entriesmapped*mapped*Typed maps; DuckDB native MAP and PostgreSQL ordered JSONB entries with exact scalar leavesTyped maps; DuckDB native MAP and PostgreSQL ordered JSONB entries with exact scalar leaves
fn.map_extractmapped*mapped*Typed maps; DuckDB native MAP and PostgreSQL ordered JSONB entries with exact scalar leavesTyped maps; DuckDB native MAP and PostgreSQL ordered JSONB entries with exact scalar leaves
fn.map_keysmapped*mapped*Typed maps; DuckDB native MAP and PostgreSQL ordered JSONB entries with exact scalar leavesTyped maps; DuckDB native MAP and PostgreSQL ordered JSONB entries with exact scalar leaves
fn.map_valuesmapped*mapped*Typed maps; DuckDB native MAP and PostgreSQL ordered JSONB entries with exact scalar leavesTyped maps; DuckDB native MAP and PostgreSQL ordered JSONB entries with exact scalar leaves
fn.md5mapped*mapped*Core hash implementation; native binary/text argumentsCore hash implementation; native binary/text arguments
fn.named_structmapped*mapped*Type-directed field names and nested values; native DuckDB records and schema-directed PostgreSQL JSONBType-directed field names and nested values; native DuckDB records and schema-directed PostgreSQL JSONB
fn.nanvlmapped*mapped*Numeric mapping with native result width and domain guardsNumeric mapping with native result width and domain guards
fn.nowlowered*lowered*Stable calls are bound during query preparationStable calls are bound during query preparation
fn.nullifmapped*mapped*Variadic/null semantics preserved; backend value/type representability still appliesVariadic/null semantics preserved; backend value/type representability still applies
fn.nvlmapped*mapped*Variadic/null semantics preserved; backend value/type representability still appliesVariadic/null semantics preserved; backend value/type representability still applies
fn.nvl2mapped*mapped*Variadic/null semantics preserved; backend value/type representability still appliesVariadic/null semantics preserved; backend value/type representability still applies
fn.octet_lengthmapped*mapped*String/code-point mapping; native argument/result types retainedString/code-point mapping; native argument/result types retained
fn.overlaymapped*mapped*Character-based overlay; portable native wrapper fixes upstream UTF-8 slicing panic and boundary handlingCharacter-based overlay; portable native wrapper fixes upstream UTF-8 slicing panic and boundary handling
fn.pimapped*mapped*Numeric mapping with native result width and domain guardsNumeric mapping with native result width and domain guards
fn.powermapped*mapped*Float64 IEEE power; integer/decimal overloads stay nativeFloat64 literal exponents 0, 0.5, 1, 2 with exact IEEE boundaries; other powers stay native
fn.radiansmapped*mapped*Numeric mapping with native result width and domain guardsNumeric mapping with native result width and domain guards
fn.randommapped*mapped*Volatile backend implementation; each argument evaluated onceVolatile backend implementation; each argument evaluated once
fn.rangemapped*mapped*Int64 bounds and optional nonzero literal step; endpoint inclusion preservedInt64 bounds and optional nonzero literal step; endpoint inclusion preserved
fn.regexp_countmapped*mapped*Literal common Rust/RE2/POSIX subset; no captures, alternation, Unicode classes, lazy quantifiers, empty matches, or replacement backreferencesLiteral common Rust/RE2/POSIX subset; no captures, alternation, Unicode classes, lazy quantifiers, empty matches, or replacement backreferences
fn.regexp_instrmapped*mapped*Literal common Rust/RE2/POSIX subset; no captures, alternation, Unicode classes, lazy quantifiers, empty matches, or replacement backreferencesLiteral common Rust/RE2/POSIX subset; no captures, alternation, Unicode classes, lazy quantifiers, empty matches, or replacement backreferences
fn.regexp_likemapped*mapped*Literal common Rust/RE2/POSIX subset; no captures, alternation, Unicode classes, lazy quantifiers, empty matches, or replacement backreferencesLiteral common Rust/RE2/POSIX subset; no captures, alternation, Unicode classes, lazy quantifiers, empty matches, or replacement backreferences
fn.regexp_matchmapped*mapped*Literal common Rust/RE2/POSIX subset; no captures, alternation, Unicode classes, lazy quantifiers, empty matches, or replacement backreferencesLiteral common Rust/RE2/POSIX subset; no captures, alternation, Unicode classes, lazy quantifiers, empty matches, or replacement backreferences
fn.regexp_replacemapped*mapped*Literal common Rust/RE2/POSIX subset; no captures, alternation, Unicode classes, lazy quantifiers, empty matches, or replacement backreferencesLiteral common Rust/RE2/POSIX subset; no captures, alternation, Unicode classes, lazy quantifiers, empty matches, or replacement backreferences
fn.repeatmapped*mapped*Literal Int32-range position/count; substring length must be nonnegativeLiteral Int32-range position/count; substring length must be nonnegative
fn.replacemapped*mapped*String/code-point mapping; native argument/result types retainedString/code-point mapping; native argument/result types retained
fn.reversemapped*mapped*String/code-point mapping; native argument/result types retainedString/code-point mapping; native argument/result types retained
fn.rightmapped*mapped*Literal Int32-range position/count; substring length must be nonnegativeLiteral Int32-range position/count; substring length must be nonnegative
fn.roundmapped*mapped*Float64 and optional literal precision in -15..15Float64 single-argument overload; binary rescaling precision overload stays native
fn.rpadmapped*mapped*Unicode 17 grapheme truncation and code-point padding; literal Int32-range lengthUnicode 17 grapheme truncation and code-point padding; literal Int32-range length
fn.rtrimmapped*mapped*String/code-point mapping; native argument/result types retainedString/code-point mapping; native argument/result types retained
fn.sha224mapped*mapped*Core-SQL SHA-2 compression; binary/text input, multiple message blocks, no extensionCore hash implementation; native binary/text arguments
fn.sha256mapped*mapped*Core hash implementation; native binary/text argumentsCore hash implementation; native binary/text arguments
fn.sha384mapped*mapped*Core-SQL SHA-2 compression; binary/text input, multiple message blocks, no extensionCore hash implementation; native binary/text arguments
fn.sha512mapped*mapped*Core-SQL SHA-2 compression; binary/text input, multiple message blocks, no extensionCore hash implementation; native binary/text arguments
fn.signummapped*mapped*Numeric mapping with native result width and domain guardsNumeric mapping with native result width and domain guards
fn.sinmapped*mapped*Numeric mapping with native result width and domain guardsNumeric mapping with native result width and domain guards
fn.sinhmapped*mapped*Float64 with native special-value/domain/overflow handlingFloat64 with native special-value/domain/overflow handling
fn.split_partmapped*mapped*Nonzero literal Int32-range field indexNonzero literal Int32-range field index
fn.sqrtmapped*mapped*Numeric mapping with native result width and domain guardsNumeric mapping with native result width and domain guards
fn.starts_withmapped*mapped*String/code-point mapping; native argument/result types retainedString/code-point mapping; native argument/result types retained
fn.string_to_arraymapped*mapped*Two/three arguments; empty text, null delimiter, and null replacement preservedTwo/three arguments; empty text, null delimiter, and null replacement preserved
fn.strposmapped*mapped*String/code-point mapping; native argument/result types retainedString/code-point mapping; native argument/result types retained
fn.structmapped*mapped*Type-directed field names and nested values; native DuckDB records and schema-directed PostgreSQL JSONBType-directed field names and nested values; native DuckDB records and schema-directed PostgreSQL JSONB
fn.substrmapped*mapped*Literal Int32-range position/count; substring length must be nonnegativeLiteral Int32-range position/count; substring length must be nonnegative
fn.substr_indexmapped*mapped*Native left/right occurrence counting, including overlapping delimitersNative left/right occurrence counting, including overlapping delimiters
fn.tanmapped*mapped*Numeric mapping with native result width and domain guardsNumeric mapping with native result width and domain guards
fn.tanhmapped*mapped*Numeric mapping with native result width and domain guardsNumeric mapping with native result width and domain guards
fn.to_charmapped*mapped*ISO date/time literal formats on timezone-free date/timestamp inputISO date/time literal formats on timezone-free date/timestamp input
fn.to_datemapped*mapped*Single timezone-free date/timestamp argument; parsing/timezone conversion stays nativeSingle timezone-free date/timestamp argument; parsing/timezone conversion stays native
fn.to_hexmapped*mapped*String/code-point mapping; native argument/result types retainedString/code-point mapping; native argument/result types retained
fn.to_local_timemapped*mapped*Single timezone-free date/timestamp argument; parsing/timezone conversion stays nativeSingle timezone-free date/timestamp argument; parsing/timezone conversion stays native
fn.to_timemapped*mapped*Time input of at most microsecond precision; text parsing stays nativeTime input of at most microsecond precision; text parsing stays native
fn.to_timestampmapped*mapped*Single Int64 epoch argument; text parsing and timezone overloads stay native; database timestamp range appliesSingle Int64 epoch argument; text parsing and timezone overloads stay native; database timestamp range applies
fn.to_timestamp_microsmapped*mapped*Single Int64 epoch argument; text parsing and timezone overloads stay native; database timestamp range appliesSingle Int64 epoch argument; text parsing and timezone overloads stay native; database timestamp range applies
fn.to_timestamp_millismapped*mapped*Single Int64 epoch argument; text parsing and timezone overloads stay native; database timestamp range appliesSingle Int64 epoch argument; text parsing and timezone overloads stay native; database timestamp range applies
fn.to_timestamp_nanosmapped*mapped*Single Int64 epoch argument; text parsing and timezone overloads stay native; database timestamp range appliesMicrosecond-aligned literal epoch; arbitrary nanoseconds cannot be preserved by PostgreSQL timestamps
fn.to_timestamp_secondsmapped*mapped*Single Int64 epoch argument; text parsing and timezone overloads stay native; database timestamp range appliesSingle Int64 epoch argument; text parsing and timezone overloads stay native; database timestamp range applies
fn.to_unixtimemapped*mapped*Timezone-free timestamp of at most microsecond precisionTimezone-free timestamp of at most microsecond precision
fn.translatemapped*mapped*Unicode 17 extended grapheme translation; first duplicate match and deletion preservedUnicode 17 extended grapheme translation; first duplicate match and deletion preserved
fn.truncmapped*mapped*Float64 and optional literal precision in -15..15Float64 single-argument overload; binary rescaling precision overload stays native
fn.union_extractmapped*mapped*Typed union variants, including null payloads and noncontiguous Arrow type IDsTyped union variants, including null payloads and noncontiguous Arrow type IDs
fn.union_tagmapped*mapped*Typed union variants, including null payloads and noncontiguous Arrow type IDsTyped union variants, including null payloads and noncontiguous Arrow type IDs
fn.uppermapped*mapped*Rust Unicode full case conversion, including expansions and contextual final sigmaRust Unicode full case conversion, including expansions and contextual final sigma
fn.uuidmapped*mapped*Volatile backend implementation; each argument evaluated onceVolatile backend implementation; each argument evaluated once
fn.versionlowered*lowered*Preparation folds the native runtime version; database version() would describe a different enginePreparation folds the native runtime version; database version() would describe a different engine

*Lowered functions resolve Arrow schema/query metadata or become casts during compilation. Runtime mappings are specific to arity, argument types, and options. Calls without a matching mapping execute natively; SQL-only compilation rejects them. Every listed function has a native implementation. Aliases resolve to the same identity.