pub enum Value {
Show 33 variants
Array {
dims: Vec<ArrayDimension>,
elements: Vec<Option<Value>>,
},
Bool(bool),
Bytea(Vec<u8>),
Char(u8),
Date(Date),
Float4(f32),
Float8(f64),
Int2(i16),
Int4(i32),
Int8(i64),
UInt2(UInt2),
UInt4(UInt4),
UInt8(UInt8),
Interval(Interval),
Jsonb(Jsonb),
List(Vec<Option<Value>>),
Map(BTreeMap<String, Option<Value>>),
Name(String),
Numeric(Numeric),
Oid(u32),
Record(Vec<Option<Value>>),
Time(NaiveTime),
Timestamp(CheckedTimestamp<NaiveDateTime>),
TimestampTz(CheckedTimestamp<DateTime<Utc>>),
Text(String),
BpChar(String),
VarChar(String),
Uuid(Uuid),
Int2Vector {
elements: Vec<Option<Value>>,
},
MzTimestamp(Timestamp),
Range(Range<Box<Value>>),
MzAclItem(MzAclItem),
AclItem(AclItem),
}
Expand description
A PostgreSQL datum.
Variants§
Array
A variable-length, multi-dimensional array of values.
Fields
dims: Vec<ArrayDimension>
The dimensions of the array.
Bool(bool)
A boolean value.
Bytea(Vec<u8>)
A byte array, i.e., a variable-length binary string.
Char(u8)
A single-byte character.
Date(Date)
A date.
Float4(f32)
A 4-byte floating point number.
Float8(f64)
An 8-byte floating point number.
Int2(i16)
A 2-byte signed integer.
Int4(i32)
A 4-byte signed integer.
Int8(i64)
An 8-byte signed integer.
UInt2(UInt2)
A 2-byte unsigned integer.
UInt4(UInt4)
A 4-byte unsigned integer.
UInt8(UInt8)
An 8-byte unsigned integer.
Interval(Interval)
A time interval.
Jsonb(Jsonb)
A binary JSON blob.
List(Vec<Option<Value>>)
A sequence of homogeneous values.
Map(BTreeMap<String, Option<Value>>)
A map of string keys and homogeneous values.
Name(String)
An identifier string of no more than 64 characters in length.
Numeric(Numeric)
An arbitrary precision number.
Oid(u32)
An object identifier.
Record(Vec<Option<Value>>)
A sequence of heterogeneous values.
Time(NaiveTime)
A time.
Timestamp(CheckedTimestamp<NaiveDateTime>)
A date and time, without a timezone.
TimestampTz(CheckedTimestamp<DateTime<Utc>>)
A date and time, with a timezone.
Text(String)
A variable-length string.
BpChar(String)
A fixed-length string.
VarChar(String)
A variable-length string with an optional limit.
Uuid(Uuid)
A universally unique identifier.
Int2Vector
A small int vector.
MzTimestamp(Timestamp)
A Materialize timestamp.
Range(Range<Box<Value>>)
A contiguous range of values along a domain.
MzAclItem(MzAclItem)
A list of privileges granted to a role, that uses mz_repr::role_id::RoleId
s for role
references.
AclItem(AclItem)
A list of privileges granted to a user that uses mz_repr::adt::system::Oid
s for role
references. This type is used primarily for compatibility with PostgreSQL.
Implementations§
source§impl Value
impl Value
sourcepub fn from_datum(datum: Datum<'_>, typ: &ScalarType) -> Option<Value>
pub fn from_datum(datum: Datum<'_>, typ: &ScalarType) -> Option<Value>
Constructs a new Value
from a Materialize datum.
The conversion happens in the obvious manner, except that Datum::Null
is converted to None
to align with how PostgreSQL handles NULL.
sourcepub fn into_datum<'a>(self, buf: &'a RowArena, typ: &Type) -> Datum<'a>
pub fn into_datum<'a>(self, buf: &'a RowArena, typ: &Type) -> Datum<'a>
Converts a Materialize datum from this value.
sourcepub fn encode(
&self,
ty: &Type,
format: Format,
buf: &mut BytesMut,
) -> Result<(), Error>
pub fn encode( &self, ty: &Type, format: Format, buf: &mut BytesMut, ) -> Result<(), Error>
Serializes this value to buf
in the specified format
.
sourcepub fn encode_text(&self, buf: &mut BytesMut) -> Nestable
pub fn encode_text(&self, buf: &mut BytesMut) -> Nestable
Serializes this value to buf
using the text encoding
format.
sourcepub fn encode_binary(&self, ty: &Type, buf: &mut BytesMut) -> Result<(), Error>
pub fn encode_binary(&self, ty: &Type, buf: &mut BytesMut) -> Result<(), Error>
Serializes this value to buf
using the binary encoding
format.
sourcepub fn can_encode_binary(typ: &ScalarType) -> bool
pub fn can_encode_binary(typ: &ScalarType) -> bool
Static helper method to pre-validate that a given Datum corresponding to
the provided ScalarType
can be converted into a Value
and then encoded
as binary using encode_binary
without an error.
sourcepub fn decode(
format: Format,
ty: &Type,
raw: &[u8],
) -> Result<Value, Box<dyn Error + Sync + Send>>
pub fn decode( format: Format, ty: &Type, raw: &[u8], ) -> Result<Value, Box<dyn Error + Sync + Send>>
Deserializes a value of type ty
from raw
using the specified
format
.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Value
impl RefUnwindSafe for Value
impl Send for Value
impl Sync for Value
impl Unpin for Value
impl UnwindSafe for Value
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> 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, 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<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
.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)
std::ops::AddAssign
, for types that do not implement AddAssign
.