Struct mz_catalog::memory::objects::CatalogCollectionEntry
source · pub struct CatalogCollectionEntry {
entry: CatalogEntry,
version: RelationVersionSelector,
}
Expand description
A CatalogEntry
that is associated with a specific “collection” of data.
A single item in the catalog may be associated with multiple “collections”.
Here “collection” generally means a pTVC, e.g. a Persist Shard, an Index, a currently running dataflow, etc.
Items in the Catalog have a stable name -> ID mapping, in other words for
the entire lifetime of an object its CatalogItemId
will never change.
Similarly, we need to maintain a stable mapping from GlobalId
to pTVC.
This presents a challenge when ALTER
-ing an object, e.g. adding columns
to a table. We can’t just change the schema of the underlying Persist Shard
because that would be rebinding the GlobalId
of the pTVC. Instead we
allocate a new GlobalId
to refer to the new version of the table, and
then the CatalogEntry
tracks the GlobalId
for each version.
TODO(ct): Add a note here if we end up using this for associating continual tasks with a single catalog item.
Fields§
§entry: CatalogEntry
§version: RelationVersionSelector
Trait Implementations§
source§impl CatalogCollectionItem for CatalogCollectionEntry
impl CatalogCollectionItem for CatalogCollectionEntry
source§fn desc(
&self,
name: &FullItemName,
) -> Result<Cow<'_, RelationDesc>, SqlCatalogError>
fn desc( &self, name: &FullItemName, ) -> Result<Cow<'_, RelationDesc>, SqlCatalogError>
source§impl CatalogItem for CatalogCollectionEntry
impl CatalogItem for CatalogCollectionEntry
source§fn name(&self) -> &QualifiedItemName
fn name(&self) -> &QualifiedItemName
source§fn id(&self) -> CatalogItemId
fn id(&self) -> CatalogItemId
CatalogItemId
for the item.source§fn global_ids(&self) -> Box<dyn Iterator<Item = GlobalId> + '_>
fn global_ids(&self) -> Box<dyn Iterator<Item = GlobalId> + '_>
GlobalId
s associated with this item.source§fn func(&self) -> Result<&'static Func, SqlCatalogError>
fn func(&self) -> Result<&'static Func, SqlCatalogError>
source§fn source_desc(
&self,
) -> Result<Option<&SourceDesc<ReferencedConnection>>, SqlCatalogError>
fn source_desc( &self, ) -> Result<Option<&SourceDesc<ReferencedConnection>>, SqlCatalogError>
source§fn connection(
&self,
) -> Result<Connection<ReferencedConnection>, SqlCatalogError>
fn connection( &self, ) -> Result<Connection<ReferencedConnection>, SqlCatalogError>
source§fn create_sql(&self) -> &str
fn create_sql(&self) -> &str
source§fn item_type(&self) -> SqlCatalogItemType
fn item_type(&self) -> SqlCatalogItemType
source§fn index_details(&self) -> Option<(&[MirScalarExpr], GlobalId)>
fn index_details(&self) -> Option<(&[MirScalarExpr], GlobalId)>
source§fn writable_table_details(&self) -> Option<&[Expr<Aug>]>
fn writable_table_details(&self) -> Option<&[Expr<Aug>]>
source§fn type_details(&self) -> Option<&CatalogTypeDetails<IdReference>>
fn type_details(&self) -> Option<&CatalogTypeDetails<IdReference>>
source§fn references(&self) -> &ResolvedIds
fn references(&self) -> &ResolvedIds
source§fn uses(&self) -> BTreeSet<CatalogItemId>
fn uses(&self) -> BTreeSet<CatalogItemId>
source§fn referenced_by(&self) -> &[CatalogItemId]
fn referenced_by(&self) -> &[CatalogItemId]
source§fn used_by(&self) -> &[CatalogItemId]
fn used_by(&self) -> &[CatalogItemId]
source§fn subsource_details(
&self,
) -> Option<(CatalogItemId, &UnresolvedItemName, &SourceExportDetails)>
fn subsource_details( &self, ) -> Option<(CatalogItemId, &UnresolvedItemName, &SourceExportDetails)>
source§fn source_export_details(
&self,
) -> Option<(CatalogItemId, &UnresolvedItemName, &SourceExportDetails, &SourceExportDataConfig<ReferencedConnection>)>
fn source_export_details( &self, ) -> Option<(CatalogItemId, &UnresolvedItemName, &SourceExportDetails, &SourceExportDataConfig<ReferencedConnection>)>
source§fn is_progress_source(&self) -> bool
fn is_progress_source(&self) -> bool
source§fn progress_id(&self) -> Option<CatalogItemId>
fn progress_id(&self) -> Option<CatalogItemId>
source§fn privileges(&self) -> &PrivilegeMap
fn privileges(&self) -> &PrivilegeMap
source§fn cluster_id(&self) -> Option<ClusterId>
fn cluster_id(&self) -> Option<ClusterId>
source§fn at_version(
&self,
version: RelationVersionSelector,
) -> Box<dyn CatalogCollectionItem>
fn at_version( &self, version: RelationVersionSelector, ) -> Box<dyn CatalogCollectionItem>
CatalogCollectionItem
for a specific version of this
CatalogItem
.source§impl Clone for CatalogCollectionEntry
impl Clone for CatalogCollectionEntry
source§fn clone(&self) -> CatalogCollectionEntry
fn clone(&self) -> CatalogCollectionEntry
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreAuto Trait Implementations§
impl Freeze for CatalogCollectionEntry
impl !RefUnwindSafe for CatalogCollectionEntry
impl Send for CatalogCollectionEntry
impl Sync for CatalogCollectionEntry
impl Unpin for CatalogCollectionEntry
impl !UnwindSafe for CatalogCollectionEntry
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<T> FmtForward for T
impl<T> FmtForward for T
source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.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> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read moresource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read moresource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.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
.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
.source§impl<T> Tap for T
impl<T> Tap for T
source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read moresource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read moresource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read moresource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read moresource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read moresource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read moresource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.