pub trait ViewRewriteCatalog: SetFunctionCatalog {
// Required methods
fn view_definition(
&self,
name: &str,
) -> Result<Option<ViewRewriteDefinition>, SQLError>;
fn try_resolve_view_name(
&self,
name: &str,
) -> Result<Option<String>, String>;
fn try_describe_table(
&self,
name: &str,
) -> Result<Option<Vec<ColumnDef>>, String>;
fn try_table_columns(&self, name: &str) -> Result<Vec<String>, String>;
fn rules_for(
&self,
name: &str,
event: RuleEvent,
) -> Result<Vec<StoredRule>, SQLError>;
fn rule_definitions_for(
&self,
name: &str,
event: RuleEvent,
) -> Result<Vec<StoredRule>, SQLError>;
fn has_trigger_definition(
&self,
name: &str,
timing: TriggerTiming,
event: TriggerEvent,
row: bool,
) -> Result<bool, SQLError>;
fn rule_new_row_columns(
&self,
rule: &StoredRule,
) -> Result<Option<BTreeSet<String>>, SQLError>;
fn target_view_kind(
&self,
name: &str,
) -> Result<Option<StoredViewKind>, SQLError>;
fn binding_scope(&self) -> Result<BindingSnapshot, SQLError>;
fn restored_view_catalog(&self) -> (CatalogReadView, RelationNameResolution);
}Required Methods§
fn view_definition( &self, name: &str, ) -> Result<Option<ViewRewriteDefinition>, SQLError>
fn try_resolve_view_name(&self, name: &str) -> Result<Option<String>, String>
fn try_describe_table( &self, name: &str, ) -> Result<Option<Vec<ColumnDef>>, String>
fn try_table_columns(&self, name: &str) -> Result<Vec<String>, String>
fn rules_for( &self, name: &str, event: RuleEvent, ) -> Result<Vec<StoredRule>, SQLError>
fn rule_definitions_for( &self, name: &str, event: RuleEvent, ) -> Result<Vec<StoredRule>, SQLError>
fn has_trigger_definition( &self, name: &str, timing: TriggerTiming, event: TriggerEvent, row: bool, ) -> Result<bool, SQLError>
fn rule_new_row_columns( &self, rule: &StoredRule, ) -> Result<Option<BTreeSet<String>>, SQLError>
fn target_view_kind( &self, name: &str, ) -> Result<Option<StoredViewKind>, SQLError>
fn binding_scope(&self) -> Result<BindingSnapshot, SQLError>
fn restored_view_catalog(&self) -> (CatalogReadView, RelationNameResolution)
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".