pub struct CatalogSnapshot {
pub schemas: HashMap<SchemaName, SchemaCatalog>,
pub profile: AnalysisProfile,
pub capabilities: CatalogCapabilities,
pub generated_at: DateTime<Utc>,
pub source: CatalogSource,
pub interner: SymbolInterner,
pub editions: Vec<Edition>,
pub known_users: Option<HashSet<UserName>>,
}Fields§
§schemas: HashMap<SchemaName, SchemaCatalog>§profile: AnalysisProfile§capabilities: CatalogCapabilities§generated_at: DateTime<Utc>§source: CatalogSource§interner: SymbolInterner§editions: Vec<Edition>Database-wide edition tree from ALL_EDITIONS. Empty when EBR
is not in use.
known_users: Option<HashSet<UserName>>Set of database usernames observed from ALL_USERS, used during
live extraction to discriminate an object-privilege grantee
(ALL_TAB_PRIVS.GRANTEE) between a real user and a database role —
Oracle’s ALL_TAB_PRIVS carries no user/role discriminator column.
None means the username set was never loaded (the ALL_USERS
probe was not run or failed); in that state grantee classification
is undetermined and, honoring R13, the extractor must NOT
silently assume a direct (high-confidence) user grant. Some(_)
(even when empty) means the set was loaded and is authoritative for
the schemas under analysis.
This is transient extraction state: it is never serialized, because
the resulting Grantee discrimination is already baked into each
persisted Grant. JSON snapshots therefore round-trip unchanged.
Implementations§
Source§impl CatalogSnapshot
impl CatalogSnapshot
pub fn new( profile: AnalysisProfile, capabilities: CatalogCapabilities, source: CatalogSource, generated_at: DateTime<Utc>, ) -> Self
Sourcepub fn intern_user_name(&mut self, text: impl Into<String>) -> Option<UserName>
pub fn intern_user_name(&mut self, text: impl Into<String>) -> Option<UserName>
Intern text as a UserName without changing classification
state. Mirrors SymbolInterner::intern_user_name but routes
through this snapshot’s interner.
Sourcepub fn intern_role_name(&mut self, text: impl Into<String>) -> Option<RoleName>
pub fn intern_role_name(&mut self, text: impl Into<String>) -> Option<RoleName>
Intern text as a RoleName through this snapshot’s interner.
pub fn intern_schema_name( &mut self, text: impl Into<String>, ) -> Option<SchemaName>
pub fn intern_object_name( &mut self, text: impl Into<String>, ) -> Option<ObjectName>
pub fn intern_column_name( &mut self, text: impl Into<String>, ) -> Option<ColumnName>
pub fn intern_member_name( &mut self, text: impl Into<String>, ) -> Option<MemberName>
pub fn intern_synonym_name( &mut self, text: impl Into<String>, ) -> Option<SynonymName>
pub fn intern_index_name( &mut self, text: impl Into<String>, ) -> Option<IndexName>
pub fn intern_constraint_name( &mut self, text: impl Into<String>, ) -> Option<ConstraintName>
pub fn intern_trigger_name( &mut self, text: impl Into<String>, ) -> Option<TriggerName>
Source§impl CatalogSnapshot
impl CatalogSnapshot
Sourcepub fn doctor_report(&self) -> CatalogDoctorReport
pub fn doctor_report(&self) -> CatalogDoctorReport
Build the doctor report directly from this snapshot.
The doctor is read-only — it never queries the DB itself; it
summarizes what was already extracted into the snapshot plus any
CapabilityWarnings the loader recorded. Missing-permission diagnoses
are inferred from per-family capability bits so the report is
equally useful for live-extracted and JSON-loaded snapshots.
Trait Implementations§
Source§impl Clone for CatalogSnapshot
impl Clone for CatalogSnapshot
Source§fn clone(&self) -> CatalogSnapshot
fn clone(&self) -> CatalogSnapshot
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 CatalogSnapshot
impl Debug for CatalogSnapshot
Source§impl Default for CatalogSnapshot
impl Default for CatalogSnapshot
Source§fn default() -> CatalogSnapshot
fn default() -> CatalogSnapshot
Source§impl<'de> Deserialize<'de> for CatalogSnapshot
impl<'de> Deserialize<'de> for CatalogSnapshot
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for CatalogSnapshot
Source§impl PartialEq for CatalogSnapshot
impl PartialEq for CatalogSnapshot
Source§fn eq(&self, other: &CatalogSnapshot) -> bool
fn eq(&self, other: &CatalogSnapshot) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for CatalogSnapshot
impl Serialize for CatalogSnapshot
impl StructuralPartialEq for CatalogSnapshot
Auto Trait Implementations§
impl Freeze for CatalogSnapshot
impl RefUnwindSafe for CatalogSnapshot
impl Send for CatalogSnapshot
impl Sync for CatalogSnapshot
impl Unpin for CatalogSnapshot
impl UnsafeUnpin for CatalogSnapshot
impl UnwindSafe for CatalogSnapshot
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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> JsonExportable for Twhere
T: Serialize + DeserializeOwned,
impl<T> JsonExportable for Twhere
T: Serialize + DeserializeOwned,
Source§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more