pub enum TableFunc {
Show 18 variants
AclExplode,
MzAclExplode,
JsonbEach {
stringify: bool,
},
JsonbObjectKeys,
JsonbArrayElements {
stringify: bool,
},
RegexpExtract(AnalyzedRegex),
CsvExtract(usize),
GenerateSeriesInt32,
GenerateSeriesInt64,
GenerateSeriesTimestamp,
GenerateSeriesTimestampTz,
Repeat,
UnnestArray {
el_typ: ScalarType,
},
UnnestList {
el_typ: ScalarType,
},
UnnestMap {
value_type: ScalarType,
},
Wrap {
types: Vec<ColumnType>,
width: usize,
},
GenerateSubscriptsArray,
TabletizedScalar {
name: String,
relation: RelationType,
},
}
Variants§
AclExplode
MzAclExplode
JsonbEach
JsonbObjectKeys
JsonbArrayElements
RegexpExtract(AnalyzedRegex)
CsvExtract(usize)
GenerateSeriesInt32
GenerateSeriesInt64
GenerateSeriesTimestamp
GenerateSeriesTimestampTz
Repeat
UnnestArray
Fields
§
el_typ: ScalarType
UnnestList
Fields
§
el_typ: ScalarType
UnnestMap
Fields
§
value_type: ScalarType
Wrap
Given n
input expressions, wraps them into n / width
rows, each of
width
columns.
This function is not intended to be called directly by end users, but is useful in the planning of e.g. VALUES clauses.
GenerateSubscriptsArray
TabletizedScalar
Execute some arbitrary scalar function as a table function.
Implementations§
source§impl TableFunc
impl TableFunc
pub fn eval<'a>( &'a self, datums: &'a [Datum<'a>], temp_storage: &'a RowArena, ) -> Result<Box<dyn Iterator<Item = (Row, Diff)> + 'a>, EvalError>
pub fn output_type(&self) -> RelationType
pub fn output_arity(&self) -> usize
pub fn empty_on_null_input(&self) -> bool
sourcepub fn preserves_monotonicity(&self) -> bool
pub fn preserves_monotonicity(&self) -> bool
True iff the table function preserves the append-only property of its input.
Trait Implementations§
source§impl Arbitrary for TableFunc
impl Arbitrary for TableFunc
§type Parameters = (<bool as Arbitrary>::Parameters, <bool as Arbitrary>::Parameters, <AnalyzedRegex as Arbitrary>::Parameters, <usize as Arbitrary>::Parameters, <ScalarType as Arbitrary>::Parameters, <ScalarType as Arbitrary>::Parameters, <ScalarType as Arbitrary>::Parameters, (<Vec<ColumnType> as Arbitrary>::Parameters, <usize as Arbitrary>::Parameters), (<String as Arbitrary>::Parameters, <RelationType as Arbitrary>::Parameters))
type Parameters = (<bool as Arbitrary>::Parameters, <bool as Arbitrary>::Parameters, <AnalyzedRegex as Arbitrary>::Parameters, <usize as Arbitrary>::Parameters, <ScalarType as Arbitrary>::Parameters, <ScalarType as Arbitrary>::Parameters, <ScalarType as Arbitrary>::Parameters, (<Vec<ColumnType> as Arbitrary>::Parameters, <usize as Arbitrary>::Parameters), (<String as Arbitrary>::Parameters, <RelationType as Arbitrary>::Parameters))
The type of parameters that
arbitrary_with
accepts for configuration
of the generated Strategy
. Parameters must implement Default
.§type Strategy = Union<BoxedStrategy<TableFunc>>
type Strategy = Union<BoxedStrategy<TableFunc>>
The type of
Strategy
used to generate values of type Self
.source§fn arbitrary_with(_top: Self::Parameters) -> Self::Strategy
fn arbitrary_with(_top: Self::Parameters) -> Self::Strategy
source§impl<'de> Deserialize<'de> for TableFunc
impl<'de> Deserialize<'de> for TableFunc
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>,
Deserialize this value from the given Serde deserializer. Read more
source§impl MzReflect for TableFunc
impl MzReflect for TableFunc
source§fn add_to_reflected_type_info(rti: &mut ReflectedTypeInfo)
fn add_to_reflected_type_info(rti: &mut ReflectedTypeInfo)
Adds names and types of the fields of the struct or enum to
rti
. Read moresource§impl Ord for TableFunc
impl Ord for TableFunc
source§impl PartialOrd for TableFunc
impl PartialOrd for TableFunc
source§impl RustType<ProtoTableFunc> for TableFunc
impl RustType<ProtoTableFunc> for TableFunc
source§fn into_proto(&self) -> ProtoTableFunc
fn into_proto(&self) -> ProtoTableFunc
Convert a
Self
into a Proto
value.source§fn from_proto(proto: ProtoTableFunc) -> Result<Self, TryFromProtoError>
fn from_proto(proto: ProtoTableFunc) -> Result<Self, TryFromProtoError>
source§fn into_proto_owned(self) -> Proto
fn into_proto_owned(self) -> Proto
A zero clone version of
Self::into_proto
that types can
optionally implement, otherwise, the default implementation
delegates to Self::into_proto
.impl Eq for TableFunc
impl StructuralPartialEq for TableFunc
Auto Trait Implementations§
impl Freeze for TableFunc
impl RefUnwindSafe for TableFunc
impl Send for TableFunc
impl Sync for TableFunc
impl Unpin for TableFunc
impl UnwindSafe for TableFunc
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
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.source§impl<T> FutureExt for T
impl<T> FutureExt for T
source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T
in a tonic::Request
source§impl<T, U> OverrideFrom<Option<&T>> for Uwhere
U: OverrideFrom<T>,
impl<T, U> OverrideFrom<Option<&T>> for Uwhere
U: OverrideFrom<T>,
source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<T> PreferredContainer for T
impl<T> PreferredContainer for T
source§impl<T> ProgressEventTimestamp for T
impl<T> ProgressEventTimestamp for T
source§impl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
impl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
source§fn into_rust(self) -> Result<R, TryFromProtoError>
fn into_rust(self) -> Result<R, TryFromProtoError>
See
RustType::from_proto
.source§fn from_rust(rust: &R) -> P
fn from_rust(rust: &R) -> P
See
RustType::into_proto
.source§impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
source§fn plus_equals(&mut self, rhs: &&'a S)
fn plus_equals(&mut self, rhs: &&'a S)
The method of
std::ops::AddAssign
, for types that do not implement AddAssign
.