Enum mz_adapter::catalog::transact::Op
source · pub enum Op {
Show 27 variants
AlterRetainHistory {
id: GlobalId,
value: Option<Value>,
window: CompactionWindow,
},
AlterRole {
id: RoleId,
name: String,
attributes: RoleAttributes,
vars: RoleVars,
},
CreateDatabase {
name: String,
owner_id: RoleId,
},
CreateSchema {
database_id: ResolvedDatabaseSpecifier,
schema_name: String,
owner_id: RoleId,
},
CreateRole {
name: String,
attributes: RoleAttributes,
},
CreateCluster {
id: ClusterId,
name: String,
introspection_sources: Vec<(&'static BuiltinLog, GlobalId)>,
owner_id: RoleId,
config: ClusterConfig,
},
CreateClusterReplica {
cluster_id: ClusterId,
id: ReplicaId,
name: String,
config: ReplicaConfig,
owner_id: RoleId,
reason: ReplicaCreateDropReason,
},
CreateItem {
id: GlobalId,
name: QualifiedItemName,
item: CatalogItem,
owner_id: RoleId,
},
Comment {
object_id: CommentObjectId,
sub_component: Option<usize>,
comment: Option<String>,
},
DropObjects(Vec<DropObjectInfo>),
GrantRole {
role_id: RoleId,
member_id: RoleId,
grantor_id: RoleId,
},
RenameCluster {
id: ClusterId,
name: String,
to_name: String,
check_reserved_names: bool,
},
RenameClusterReplica {
cluster_id: ClusterId,
replica_id: ReplicaId,
name: QualifiedReplica,
to_name: String,
},
RenameItem {
id: GlobalId,
current_full_name: FullItemName,
to_name: String,
},
RenameSchema {
database_spec: ResolvedDatabaseSpecifier,
schema_spec: SchemaSpecifier,
new_name: String,
check_reserved_names: bool,
},
UpdateOwner {
id: ObjectId,
new_owner: RoleId,
},
UpdatePrivilege {
target_id: SystemObjectId,
privilege: MzAclItem,
variant: UpdatePrivilegeVariant,
},
UpdateDefaultPrivilege {
privilege_object: DefaultPrivilegeObject,
privilege_acl_item: DefaultPrivilegeAclItem,
variant: UpdatePrivilegeVariant,
},
RevokeRole {
role_id: RoleId,
member_id: RoleId,
grantor_id: RoleId,
},
UpdateClusterConfig {
id: ClusterId,
name: String,
config: ClusterConfig,
},
UpdateClusterReplicaConfig {
cluster_id: ClusterId,
replica_id: ReplicaId,
config: ReplicaConfig,
},
UpdateItem {
id: GlobalId,
name: QualifiedItemName,
to_item: CatalogItem,
},
UpdateSystemConfiguration {
name: String,
value: OwnedVarInput,
},
ResetSystemConfiguration {
name: String,
},
ResetAllSystemConfiguration,
WeirdBuiltinTableUpdates {
builtin_table_update: BuiltinTableUpdate,
audit_log: Vec<(EventType, ObjectType, EventDetails)>,
},
TransactionDryRun,
}
Variants§
AlterRetainHistory
AlterRole
CreateDatabase
CreateSchema
CreateRole
CreateCluster
CreateClusterReplica
CreateItem
Comment
DropObjects(Vec<DropObjectInfo>)
GrantRole
RenameCluster
RenameClusterReplica
RenameItem
RenameSchema
UpdateOwner
UpdatePrivilege
UpdateDefaultPrivilege
Fields
privilege_object: DefaultPrivilegeObject
privilege_acl_item: DefaultPrivilegeAclItem
variant: UpdatePrivilegeVariant
RevokeRole
UpdateClusterConfig
UpdateClusterReplicaConfig
UpdateItem
UpdateSystemConfiguration
ResetSystemConfiguration
ResetAllSystemConfiguration
WeirdBuiltinTableUpdates
Performs updates to weird builtin tables, such as mz_ssh_tunnel_connections
and
mz_cluster_replica_statuses
. Their contents are not fully derived from catalog state.
mz_ssh_tunnel_connections
is derived from the secrets controller, however, it still must
be kept in-sync with the catalog state. Storing the contents of the table in the durable
catalog would simplify the situation, but then we’d have to somehow encode public keys the
CREATE SQL of connections, which is annoying. In order to successfully balance all of these
constraints, we handle all updates to the table separately. mz_cluster_replica_statuses
is ephemeral state and should be a builtin source.
TODO(jkosh44) In a multi-writer or high availability catalog world, this will not work. If a process crashes after updating the durable catalog but before updating the builtin table, then another listening catalog will never know to update the builtin table.
Fields
builtin_table_update: BuiltinTableUpdate
audit_log: Vec<(EventType, ObjectType, EventDetails)>
TransactionDryRun
Performs a dry run of the commit, but errors with
AdapterError::TransactionDryRun
.
When using this value, it should be included only as the last element of the transaction and should not be the only value in the transaction.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Op
impl !RefUnwindSafe for Op
impl Send for Op
impl Sync for Op
impl Unpin for Op
impl !UnwindSafe for Op
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.