pub enum AlterCollectionOp {
AddColumn {
column_name: String,
column_type: String,
not_null: bool,
default_expr: Option<String>,
},
DropColumn {
column_name: String,
},
RenameColumn {
old_name: String,
new_name: String,
},
AlterColumnType {
column_name: String,
new_type: String,
},
OwnerTo {
new_owner: String,
},
SetRetention {
value: String,
},
SetAppendOnly,
SetLastValueCache {
enabled: bool,
},
SetLegalHold {
enabled: bool,
tag: String,
},
AddMaterializedSum {
target_collection: String,
target_column: String,
source_collection: String,
join_column: String,
value_expr: String,
},
SetOnConflict {
policy: ConflictPolicyKind,
constraint_kind: ConstraintKindKeyword,
},
}Expand description
Typed sub-operation for ALTER COLLECTION <name> ....
Each variant corresponds to one ALTER sub-command parsed by
nodedb-sql/src/ddl_ast/parse/collection.rs. The handler in
nodedb/src/control/server/pgwire/ddl/collection/alter/ matches
on this enum instead of rescanning raw SQL.
Variants§
AddColumn
ADD [COLUMN] <name> <type> [NOT NULL] [DEFAULT expr]
DropColumn
DROP COLUMN <name>
RenameColumn
RENAME COLUMN <old> TO <new>
AlterColumnType
ALTER COLUMN <name> TYPE <type>
OwnerTo
OWNER TO <user>
SetRetention
SET RETENTION = '<duration>'
SetAppendOnly
SET APPEND_ONLY
SetLastValueCache
SET LAST_VALUE_CACHE = TRUE|FALSE
SetLegalHold
SET LEGAL_HOLD = TRUE|FALSE TAG '<tag>'
AddMaterializedSum
ADD [COLUMN] <target_column> ... AS MATERIALIZED_SUM SOURCE <source_collection> ON <join_column> VALUE <value_expr> — fully parsed by
nodedb-sql; the handler receives typed fields and never
rescans raw SQL.
Fields
SetOnConflict
SET ON CONFLICT <policy_keyword> FOR <constraint_kind_keyword>
Sets the per-collection, per-constraint-kind conflict resolution policy.
Fields
policy: ConflictPolicyKindParsed conflict policy keyword.
constraint_kind: ConstraintKindKeywordWhich constraint kind this policy applies to.
Trait Implementations§
Source§impl Clone for AlterCollectionOp
impl Clone for AlterCollectionOp
Source§fn clone(&self) -> AlterCollectionOp
fn clone(&self) -> AlterCollectionOp
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for AlterCollectionOp
impl Debug for AlterCollectionOp
Source§impl PartialEq for AlterCollectionOp
impl PartialEq for AlterCollectionOp
Source§fn eq(&self, other: &AlterCollectionOp) -> bool
fn eq(&self, other: &AlterCollectionOp) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for AlterCollectionOp
Auto Trait Implementations§
impl Freeze for AlterCollectionOp
impl RefUnwindSafe for AlterCollectionOp
impl Send for AlterCollectionOp
impl Sync for AlterCollectionOp
impl Unpin for AlterCollectionOp
impl UnsafeUnpin for AlterCollectionOp
impl UnwindSafe for AlterCollectionOp
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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§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> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.