pub struct SchemaManager {
pub sql_caches: SqlCacheHandle,
/* private fields */
}Expand description
Manages table schemas in memory, backed by the _schema table.
Fields§
§sql_caches: SqlCacheHandlePer-Database shared cache (e.g. ANN indexes). Cloned from the Database
when the Connection opens; all Connections to the same DB share entries.
Tests created via empty() get their own isolated cache.
Implementations§
Source§impl SchemaManager
impl SchemaManager
pub fn empty() -> Self
Sourcepub fn mark_dml(&self, table_name: &str)
pub fn mark_dml(&self, table_name: &str)
Mark a table as modified by DML. Caller should normalize the name (lowercase) so dedup works correctly.
Sourcepub fn drain_dml_dirty(&self) -> Vec<String>
pub fn drain_dml_dirty(&self) -> Vec<String>
Take the set of tables modified since the last drain. Returns an empty vec if no DML has run since the last commit/rollback.
Sourcepub fn clear_dml_dirty(&self)
pub fn clear_dml_dirty(&self)
Forget pending DML markers without invalidating downstream caches. Used on rollback (uncommitted writes leave no caches stale).
pub fn register_temp_alias(&mut self, user_name: &str, prefixed_name: String)
pub fn unregister_temp_alias(&mut self, user_name: &str) -> Option<String>
pub fn temp_alias_iter(&self) -> impl Iterator<Item = (&str, &str)> + '_
pub fn resolve_temp(&self, name: &str) -> String
pub fn load(db: &Database) -> Result<Self>
pub fn get_virtual(&self, name: &str) -> Option<&Arc<dyn VirtualTable>>
pub fn register_virtual(&mut self, vt: Arc<dyn VirtualTable>)
pub fn get(&self, name: &str) -> Option<&TableSchema>
pub fn register_transition_schema( &self, storage_name: String, schema: TableSchema, )
pub fn unregister_transition_schema(&self, storage_name: &str)
pub fn contains(&self, name: &str) -> bool
pub fn generation(&self) -> u64
pub fn register(&mut self, schema: TableSchema)
pub fn remove(&mut self, name: &str) -> Option<TableSchema>
pub fn table_names(&self) -> Vec<&str>
pub fn all_schemas(&self) -> impl Iterator<Item = &TableSchema>
pub fn get_view(&self, name: &str) -> Option<&ViewDef>
pub fn register_view(&mut self, view: ViewDef)
pub fn remove_view(&mut self, name: &str) -> Option<ViewDef>
pub fn view_names(&self) -> Vec<&str>
pub fn triggers_for(&self, target: &str) -> &[TriggerDef]
pub fn all_triggers(&self) -> impl Iterator<Item = &TriggerDef> + '_
pub fn register_trigger(&mut self, trig: TriggerDef)
pub fn remove_trigger(&mut self, name: &str) -> Option<TriggerDef>
Sourcepub fn remove_triggers_for(&mut self, target: &str) -> Vec<TriggerDef>
pub fn remove_triggers_for(&mut self, target: &str) -> Vec<TriggerDef>
Caller is responsible for dropping the returned triggers’ on-disk catalog rows.
pub fn find_trigger(&self, name: &str) -> Option<(&str, &TriggerDef)>
pub fn set_trigger_enabled(&mut self, name: &str, enabled: bool) -> bool
pub fn set_all_triggers_enabled(&mut self, target: &str, enabled: bool) -> usize
pub fn ensure_triggers_table(wtx: &mut WriteTxn<'_>) -> Result<()>
pub fn save_trigger(wtx: &mut WriteTxn<'_>, trig: &TriggerDef) -> Result<()>
pub fn delete_trigger(wtx: &mut WriteTxn<'_>, name: &str) -> Result<()>
pub fn save_view(wtx: &mut WriteTxn<'_>, view: &ViewDef) -> Result<()>
pub fn delete_view(wtx: &mut WriteTxn<'_>, name: &str) -> Result<()>
pub fn ensure_views_table(wtx: &mut WriteTxn<'_>) -> Result<()>
pub fn get_matview(&self, name: &str) -> Option<&MatviewDef>
pub fn matview_names(&self) -> Vec<&str>
pub fn all_matviews(&self) -> impl Iterator<Item = &MatviewDef> + '_
pub fn register_matview(&mut self, mv: MatviewDef)
pub fn remove_matview(&mut self, name: &str) -> Option<MatviewDef>
pub fn ensure_matviews_table(wtx: &mut WriteTxn<'_>) -> Result<()>
pub fn save_matview(wtx: &mut WriteTxn<'_>, mv: &MatviewDef) -> Result<()>
pub fn delete_matview(wtx: &mut WriteTxn<'_>, name: &str) -> Result<()>
pub fn child_fks_for(&self, parent: &str) -> Vec<(&str, &ForeignKeySchemaEntry)>
pub fn save_schema(wtx: &mut WriteTxn<'_>, schema: &TableSchema) -> Result<()>
pub fn delete_schema(wtx: &mut WriteTxn<'_>, name: &str) -> Result<()>
pub fn ensure_schema_table(wtx: &mut WriteTxn<'_>) -> Result<()>
pub fn save_snapshot(&self) -> SchemaSnapshot
pub fn restore_snapshot(&mut self, snap: SchemaSnapshot)
Auto Trait Implementations§
impl !Freeze for SchemaManager
impl !RefUnwindSafe for SchemaManager
impl !Sync for SchemaManager
impl !UnwindSafe for SchemaManager
impl Send for SchemaManager
impl Unpin for SchemaManager
impl UnsafeUnpin for SchemaManager
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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>
Converts
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>
Converts
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 more