pub enum JsonStats {
None,
Mixed,
JsonNulls,
Bools(PrimitiveStats<bool>),
Strings(PrimitiveStats<String>),
Numerics(PrimitiveStats<Vec<u8>>),
Lists,
Maps(BTreeMap<String, JsonMapElementStats>),
}
Variants§
None
A sentinel that indicates there were no elements.
Mixed
There were elements from more than one category of: bools, strings, numerics, lists, maps.
JsonNulls
A sentinel that indicates all elements were Datum::JsonNull
s.
Bools(PrimitiveStats<bool>)
The min and max bools, or None if there were none.
Strings(PrimitiveStats<String>)
The min and max strings, or None if there were none.
Numerics(PrimitiveStats<Vec<u8>>)
The min and max numerics, or None if there were none. Since we don’t have a decimal type here yet, this is stored in serialized form.
Lists
A sentinel that indicates all elements were Datum::List
s.
TODO: We could also do something for list indexes analogous to what we do for map keys, but it initially seems much less likely that a user would expect that to work with pushdown, so don’t bother keeping the stats until someone asks for it.
Maps(BTreeMap<String, JsonMapElementStats>)
Recursive statistics about the set of keys present in any maps/objects in the column, or None if there were no maps/objects.
Implementations§
Trait Implementations§
Source§impl RustType<ProtoJsonStats> for JsonStats
impl RustType<ProtoJsonStats> for JsonStats
Source§fn into_proto(&self) -> ProtoJsonStats
fn into_proto(&self) -> ProtoJsonStats
Self
into a Proto
value.Source§fn from_proto(proto: ProtoJsonStats) -> Result<Self, TryFromProtoError>
fn from_proto(proto: ProtoJsonStats) -> Result<Self, TryFromProtoError>
Source§fn into_proto_owned(self) -> Proto
fn into_proto_owned(self) -> Proto
Self::into_proto
that types can
optionally implement, otherwise, the default implementation
delegates to Self::into_proto
.Auto Trait Implementations§
impl Freeze for JsonStats
impl RefUnwindSafe for JsonStats
impl Send for JsonStats
impl Sync for JsonStats
impl Unpin for JsonStats
impl UnwindSafe for JsonStats
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,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)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>
T
in a tonic::Request
Source§impl<T> Pointable for T
impl<T> Pointable 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>
RustType::from_proto
.Source§fn from_rust(rust: &R) -> P
fn from_rust(rust: &R) -> P
RustType::into_proto
.