Struct mz_postgres_util::desc::PostgresTableDesc
source · pub struct PostgresTableDesc {
pub oid: Oid,
pub namespace: String,
pub name: String,
pub columns: Vec<PostgresColumnDesc>,
pub keys: BTreeSet<PostgresKeyDesc>,
}
Expand description
Describes a table in a PostgreSQL database.
Fields§
§oid: Oid
The OID of the table.
namespace: String
The name of the schema that the table belongs to.
name: String
The name of the table.
columns: Vec<PostgresColumnDesc>
The description of each column, in order of their position in the table.
keys: BTreeSet<PostgresKeyDesc>
Applicable keys for this table (i.e. primary key and unique constraints).
Implementations§
source§impl PostgresTableDesc
impl PostgresTableDesc
sourcepub fn determine_compatibility(
&self,
other: &PostgresTableDesc,
allow_type_to_change_by_col_num: &BTreeSet<u16>,
) -> Result<(), Error>
pub fn determine_compatibility( &self, other: &PostgresTableDesc, allow_type_to_change_by_col_num: &BTreeSet<u16>, ) -> Result<(), Error>
Determines if two PostgresTableDesc
are compatible with one another in
a way that Materialize can handle.
Currently this means that the values are equal except for the following exceptions:
self
’s columns are a compatible prefix ofother
’s columns. Compatibility is defined as returningtrue
forPostgresColumnDesc::is_compatible
.self
’s keys are all present inother
Trait Implementations§
source§impl Arbitrary for PostgresTableDesc
impl Arbitrary for PostgresTableDesc
§type Parameters = (<u32 as Arbitrary>::Parameters, <String as Arbitrary>::Parameters, <String as Arbitrary>::Parameters)
type Parameters = (<u32 as Arbitrary>::Parameters, <String as Arbitrary>::Parameters, <String as Arbitrary>::Parameters)
The type of parameters that
arbitrary_with
accepts for configuration
of the generated Strategy
. Parameters must implement Default
.§type Strategy = Map<(<u32 as Arbitrary>::Strategy, <String as Arbitrary>::Strategy, <String as Arbitrary>::Strategy, BoxedStrategy<Vec<PostgresColumnDesc>>, BoxedStrategy<BTreeSet<PostgresKeyDesc>>), fn(_: (u32, String, String, Vec<PostgresColumnDesc>, BTreeSet<PostgresKeyDesc>)) -> PostgresTableDesc>
type Strategy = Map<(<u32 as Arbitrary>::Strategy, <String as Arbitrary>::Strategy, <String as Arbitrary>::Strategy, BoxedStrategy<Vec<PostgresColumnDesc>>, BoxedStrategy<BTreeSet<PostgresKeyDesc>>), fn(_: (u32, String, String, Vec<PostgresColumnDesc>, BTreeSet<PostgresKeyDesc>)) -> PostgresTableDesc>
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 Clone for PostgresTableDesc
impl Clone for PostgresTableDesc
source§fn clone(&self) -> PostgresTableDesc
fn clone(&self) -> PostgresTableDesc
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for PostgresTableDesc
impl Debug for PostgresTableDesc
source§impl<'de> Deserialize<'de> for PostgresTableDesc
impl<'de> Deserialize<'de> for PostgresTableDesc
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 PartialEq for PostgresTableDesc
impl PartialEq for PostgresTableDesc
source§impl RustType<ProtoPostgresTableDesc> for PostgresTableDesc
impl RustType<ProtoPostgresTableDesc> for PostgresTableDesc
source§fn into_proto(&self) -> ProtoPostgresTableDesc
fn into_proto(&self) -> ProtoPostgresTableDesc
Convert a
Self
into a Proto
value.source§fn from_proto(proto: ProtoPostgresTableDesc) -> Result<Self, TryFromProtoError>
fn from_proto(proto: ProtoPostgresTableDesc) -> 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
.source§impl Serialize for PostgresTableDesc
impl Serialize for PostgresTableDesc
impl Eq for PostgresTableDesc
impl StructuralPartialEq for PostgresTableDesc
Auto Trait Implementations§
impl Freeze for PostgresTableDesc
impl RefUnwindSafe for PostgresTableDesc
impl Send for PostgresTableDesc
impl Sync for PostgresTableDesc
impl Unpin for PostgresTableDesc
impl UnwindSafe for PostgresTableDesc
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> 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<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<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> 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
.