pub enum FunctionDispatch {
Show 39 variants
NumericOperator(NumericOperator),
Pattern {
operator: PatternOperator,
oid: Option<NonZeroU32>,
},
PatternEscape {
similar: bool,
},
BooleanTest(BooleanTest),
Collate {
oid: Option<u32>,
},
CollationFor {
collation_oid: u32,
noncollatable_type_oid: Option<u32>,
},
NamedArgument,
VariadicArgument,
ArraySubscripts,
ArraySlices,
ArraySlicesWithBounds(ArraySliceBounds),
Subscript,
Slice,
FieldSelect,
AnyOperator,
AllOperator,
IsDistinct,
ValueIsDistinct,
ValueNullTest {
negated: bool,
},
BetweenSymmetric,
ToBinInt4,
ToBinInt8,
ToHexInt4,
ToHexInt8,
ToOctInt4,
ToOctInt8,
RandomInt4Range,
RandomInt8Range,
RandomNumericRange,
ArraySortJson,
Concat {
oid: Option<u32>,
},
ArrayConcat,
ArrayAppend,
ArrayPrepend,
JsonPath {
as_text: bool,
jsonb: bool,
},
JsonExtract {
as_text: bool,
path: bool,
},
Range {
operation: RangeFunctionOperation,
subtype: RangeSubtype,
multirange: bool,
},
Enum {
operation: EnumFunctionOperation,
type_oid: u32,
},
MergeAction,
}Expand description
Structural identity for parser-owned expressions and overload-specific built-in implementations. These variants occupy no SQL function-name namespace.
Variants§
NumericOperator(NumericOperator)
Pattern
SQL pattern syntax, retaining its selected binary operator after escape processing.
PatternEscape
A parser-owned escape helper, evaluated and folded independently of the strict match operator.
BooleanTest(BooleanTest)
A non-strict SQL Boolean test, distinct from routine lookup and equality.
Collate
A collation clause, retaining its selected identity independently of its written name.
CollationFor
The selected argument metadata of pg_collation_for; the argument still executes before the observation.
NamedArgument
VariadicArgument
ArraySubscripts
ArraySlices
ArraySlicesWithBounds(ArraySliceBounds)
Slice syntax with independently retained omitted endpoints.
Subscript
Slice
FieldSelect
(expression).field: the field of a composite value, or the key of a document map.
AnyOperator
AllOperator
IsDistinct
ValueIsDistinct
One selected DISTINCT comparison of complete field values; nested ROW constructors remain one record-valued operand.
ValueNullTest
The outer NULL test selected by DISTINCT against a bare NULL, without testing individual record fields or requiring equality.
BetweenSymmetric
ToBinInt4
ToBinInt8
ToHexInt4
ToHexInt8
ToOctInt4
ToOctInt8
RandomInt4Range
RandomInt8Range
RandomNumericRange
ArraySortJson
Concat
SQL concatenation syntax, with its selected catalog overload after operand analysis.
ArrayConcat
The selected array || overload, retained even when its arguments evaluate to NULL.
ArrayAppend
ArrayPrepend
JsonPath
A resolved JSON path function whose final argument is the declared text array.
JsonExtract
Range
Enum
An anyenum support function bound to one concrete enum type.
MergeAction
The current MERGE action, read from the executor-owned row attribute.
Implementations§
Source§impl FunctionDispatch
impl FunctionDispatch
Sourcepub const fn is_concatenation(self) -> bool
pub const fn is_concatenation(self) -> bool
Whether this expression retains SQL concatenation syntax and operand roles.
Sourcepub const fn label(self) -> &'static str
pub const fn label(self) -> &'static str
Human-readable expression label used only in diagnostics and serialized plans; dispatch is always selected by the enum variant.
pub const fn is_call_argument_marker(self) -> bool
Sourcepub const fn json_extraction_symbol(self) -> Option<&'static str>
pub const fn json_extraction_symbol(self) -> Option<&'static str>
The SQL spelling of a retained JSON extraction operator, independent of its diagnostic label.
Trait Implementations§
Source§impl Clone for FunctionDispatch
impl Clone for FunctionDispatch
impl Copy for FunctionDispatch
Source§impl Debug for FunctionDispatch
impl Debug for FunctionDispatch
Source§impl<'de> Deserialize<'de> for FunctionDispatch
impl<'de> Deserialize<'de> for FunctionDispatch
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for FunctionDispatch
Source§impl PartialEq for FunctionDispatch
impl PartialEq for FunctionDispatch
Source§impl Serialize for FunctionDispatch
impl Serialize for FunctionDispatch
impl StructuralPartialEq for FunctionDispatch
Auto Trait Implementations§
impl Freeze for FunctionDispatch
impl RefUnwindSafe for FunctionDispatch
impl Send for FunctionDispatch
impl Sync for FunctionDispatch
impl Unpin for FunctionDispatch
impl UnsafeUnpin for FunctionDispatch
impl UnwindSafe for FunctionDispatch
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more