Struct mz_repr::relation::RelationType
source · pub struct RelationType {
pub column_types: Vec<ColumnType>,
pub keys: Vec<Vec<usize>>,
}
Expand description
The type of a relation.
Fields§
§column_types: Vec<ColumnType>
The type for each column, in order.
keys: Vec<Vec<usize>>
Sets of indices that are “keys” for the collection.
Each element in this list is a set of column indices, each with the property that the collection contains at most one record with each distinct set of values for each column. Alternately, for a specific set of values assigned to the these columns there is at most one record.
A collection can contain multiple sets of keys, although it is common to have either zero or one sets of key indices.
Implementations§
source§impl RelationType
impl RelationType
sourcepub fn empty() -> Self
pub fn empty() -> Self
Constructs a RelationType
representing the relation with no columns and
no keys.
sourcepub fn new(column_types: Vec<ColumnType>) -> Self
pub fn new(column_types: Vec<ColumnType>) -> Self
Constructs a new RelationType
from specified column types.
The RelationType
will have no keys.
pub fn with_keys(self, keys: Vec<Vec<usize>>) -> Self
sourcepub fn default_key(&self) -> Vec<usize>
pub fn default_key(&self) -> Vec<usize>
Gets the index of the columns used when creating a default index.
sourcepub fn columns(&self) -> &[ColumnType]
pub fn columns(&self) -> &[ColumnType]
Returns all the ColumnType
s, in order, for this relation.
Trait Implementations§
source§impl Arbitrary for RelationType
impl Arbitrary for RelationType
§type Parameters = (<Vec<ColumnType> as Arbitrary>::Parameters, <Vec<Vec<usize>> as Arbitrary>::Parameters)
type Parameters = (<Vec<ColumnType> as Arbitrary>::Parameters, <Vec<Vec<usize>> as Arbitrary>::Parameters)
arbitrary_with
accepts for configuration
of the generated Strategy
. Parameters must implement Default
.§type Strategy = Map<(<Vec<ColumnType> as Arbitrary>::Strategy, <Vec<Vec<usize>> as Arbitrary>::Strategy), fn(_: (Vec<ColumnType>, Vec<Vec<usize>>)) -> RelationType>
type Strategy = Map<(<Vec<ColumnType> as Arbitrary>::Strategy, <Vec<Vec<usize>> as Arbitrary>::Strategy), fn(_: (Vec<ColumnType>, Vec<Vec<usize>>)) -> RelationType>
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 Clone for RelationType
impl Clone for RelationType
source§fn clone(&self) -> RelationType
fn clone(&self) -> RelationType
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for RelationType
impl Debug for RelationType
source§impl<'de> Deserialize<'de> for RelationType
impl<'de> Deserialize<'de> for RelationType
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>,
source§impl Hash for RelationType
impl Hash for RelationType
source§impl MzReflect for RelationType
impl MzReflect for RelationType
source§fn add_to_reflected_type_info(rti: &mut ReflectedTypeInfo)
fn add_to_reflected_type_info(rti: &mut ReflectedTypeInfo)
rti
. Read moresource§impl Ord for RelationType
impl Ord for RelationType
source§fn cmp(&self, other: &RelationType) -> Ordering
fn cmp(&self, other: &RelationType) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
source§impl PartialEq for RelationType
impl PartialEq for RelationType
source§impl PartialOrd for RelationType
impl PartialOrd for RelationType
source§impl RustType<ProtoRelationType> for RelationType
impl RustType<ProtoRelationType> for RelationType
source§fn into_proto(&self) -> ProtoRelationType
fn into_proto(&self) -> ProtoRelationType
Self
into a Proto
value.source§fn from_proto(proto: ProtoRelationType) -> Result<Self, TryFromProtoError>
fn from_proto(proto: ProtoRelationType) -> 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
.source§impl Serialize for RelationType
impl Serialize for RelationType
impl Eq for RelationType
impl StructuralPartialEq for RelationType
Auto Trait Implementations§
impl Freeze for RelationType
impl RefUnwindSafe for RelationType
impl Send for RelationType
impl Sync for RelationType
impl Unpin for RelationType
impl UnwindSafe for RelationType
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§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
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
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
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<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<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>
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
.