pub trait AnalysisCatalog: Send + Sync {
// Required methods
fn table_resolved(
&self,
resolution: &RelationNameResolution,
name: &str,
) -> Result<Option<TableDefinition>, SQLError>;
fn table_name_resolved(
&self,
resolution: &RelationNameResolution,
name: &str,
) -> Result<Option<String>, SQLError>;
fn view_resolved(
&self,
resolution: &RelationNameResolution,
name: &str,
) -> Result<Option<ViewDefinition>, SQLError>;
fn foreign_table_resolved(
&self,
resolution: &RelationNameResolution,
name: &str,
) -> Result<Option<TableDefinition>, SQLError>;
fn sequence_exists(
&self,
resolution: &RelationNameResolution,
name: &str,
) -> Result<bool, SQLError>;
fn virtual_relation_schema(
&self,
resolution: &RelationNameResolution,
name: &str,
) -> Result<Option<Vec<(String, ColumnType)>>, SQLError>;
fn sql_functions(
&self,
resolution: &RelationNameResolution,
name: &str,
) -> Result<Option<Vec<Arc<SQLUserFunction>>>, SQLError>;
}Expand description
Immutable namespace-aware lookup for SQL analysis. This contract exposes definitions only; it grants no row access, mutation, locking, or transaction services.
Required Methods§
fn table_resolved( &self, resolution: &RelationNameResolution, name: &str, ) -> Result<Option<TableDefinition>, SQLError>
fn table_name_resolved( &self, resolution: &RelationNameResolution, name: &str, ) -> Result<Option<String>, SQLError>
fn view_resolved( &self, resolution: &RelationNameResolution, name: &str, ) -> Result<Option<ViewDefinition>, SQLError>
fn foreign_table_resolved( &self, resolution: &RelationNameResolution, name: &str, ) -> Result<Option<TableDefinition>, SQLError>
fn sequence_exists( &self, resolution: &RelationNameResolution, name: &str, ) -> Result<bool, SQLError>
fn virtual_relation_schema( &self, resolution: &RelationNameResolution, name: &str, ) -> Result<Option<Vec<(String, ColumnType)>>, SQLError>
fn sql_functions( &self, resolution: &RelationNameResolution, name: &str, ) -> Result<Option<Vec<Arc<SQLUserFunction>>>, SQLError>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".