pub struct Commit { /* private fields */ }Expand description
Staged changes to tables and names, published onto a pinned branch head as one Catalog commit.
Staging only records which versions and names change: tables write their new versions themselves, and staging does no I/O except for Connections. Publishing succeeds only while the branch still points at the pinned head, so readers see every staged change or none.
Implementations§
Source§impl Commit
impl Commit
Sourcepub fn head(&self) -> &BranchHead
pub fn head(&self) -> &BranchHead
The branch head this commit publishes onto.
Sourcepub fn operation_id(&self) -> Uuid
pub fn operation_id(&self) -> Uuid
Durable operation identity used for publication and recovery.
Sourcepub fn update_table(&mut self, table: &Table) -> Result<(), Error>
pub fn update_table(&mut self, table: &Table) -> Result<(), Error>
Stage table as its resource’s version, in place of the version the head binds.
table is a table opened at the head or a version written from one, through any number
of writes; only the head’s version and table enter the commit. Stage each table once,
with its newest version. Staging the head’s own version asserts that it is unchanged.
Sourcepub fn create_table(&mut self, name: &str, table: &Table) -> Result<(), Error>
pub fn create_table(&mut self, name: &str, table: &Table) -> Result<(), Error>
Stage a new table, written by Project::write_table or Project::table_writer,
and bind it at the project root as name.
Names are one namespace segment. Dropping a root name and creating it again publishes one rebinding.
Sourcepub fn create_vector_index(
&mut self,
name: &str,
index: &VectorIndex,
) -> Result<(), Error>
pub fn create_vector_index( &mut self, name: &str, index: &VectorIndex, ) -> Result<(), Error>
Stage a new Vector Index, created by Project::create_vector_index, and bind it at
the project root as name.
Sourcepub async fn create_enrichment(
&mut self,
source: &Table,
name: &str,
expression: Expression,
) -> Result<(), Error>
pub async fn create_enrichment( &mut self, source: &Table, name: &str, expression: Expression, ) -> Result<(), Error>
Create an Enrichment of source, a table opened at this commit’s head, and stage it as
name under the table, such as frames/is_blurry.
The Enrichment computes expression over each source row. Creation computes nothing:
it checks the expression against the source schema and records it with its output type.
Run Enrichment::refresh on the published commit to
compute the values. Unlike table changes, this calls the Tables API.
Sourcepub fn rename_table(&mut self, table: &Table, name: &str) -> Result<(), Error>
pub fn rename_table(&mut self, table: &Table, name: &str) -> Result<(), Error>
Stage moving a table opened by path at the head to a root name.
Only bindings change: the resource keeps its identity and version, and the commit can still update it. The old path is unbound like a drop’s, so its root name can be created again.
Sourcepub fn drop_table(&mut self, table: &Table) -> Result<(), Error>
pub fn drop_table(&mut self, table: &Table) -> Result<(), Error>
Stage retiring a table opened by path at the head and unbinding its path.
The path is unbound from the project root; its leading segments are an implicit prefix, not a parent resource. Dropping a root name and creating it again publishes one rebinding.
Sourcepub async fn create_connection(
&mut self,
path: &str,
uri: String,
credential: Credential,
description: Option<String>,
) -> Result<ExternalConnection, Error>
pub async fn create_connection( &mut self, path: &str, uri: String, credential: Credential, description: Option<String>, ) -> Result<ExternalConnection, Error>
Create a Connection and stage its name for publication on main.
Only the service request carries the credential. The Catalog receives IDs. The Connection is not discoverable by name until this commit publishes. Unlike table changes, this calls the Connection service and reads the names at the head.
Sourcepub async fn drop_connection(&mut self, path: &str) -> Result<(), Error>
pub async fn drop_connection(&mut self, path: &str) -> Result<(), Error>
Stage retiring a Connection and unbinding its name on main.
The service deletes the secret after observing the published retirement. Abandoning the commit or a publication conflict leaves the secret intact. Unlike table changes, this reads the names at the head.
Sourcepub fn freeze(self) -> Result<FrozenCommit, Error>
pub fn freeze(self) -> Result<FrozenCommit, Error>
Fix the publication request without I/O, so it can be saved before publishing.
Sourcepub async fn publish(self) -> Result<BranchHead, PublishError>
pub async fn publish(self) -> Result<BranchHead, PublishError>
Publish onto the pinned head and return the branch’s new head.
On PublishError::Unknown, recover or publish the returned FrozenCommit.
Auto Trait Implementations§
impl !RefUnwindSafe for Commit
impl !UnwindSafe for Commit
impl Freeze for Commit
impl Send for Commit
impl Sync for Commit
impl Unpin for Commit
impl UnsafeUnpin for Commit
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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> 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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§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> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
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.