Skip to main content

sql_fun_sqlast/sem/parse_context/
view_info.rs

1use crate::sem::{AlterView, AnalysisError, CreateTableAs, CreateView, FullName, ViewLike};
2
3/// get view definition
4pub trait ViewInfoRead {
5    /// get `CREATE VIEW` statement by view name
6    fn get_view_impl(&self, key: &FullName) -> Option<&ViewLike>;
7}
8
9/// store update view definitions
10pub trait ViewInfoWrite
11where
12    Self: Sized,
13{
14    /// apply `alter view` statement to current schema
15    fn apply_alter_view(self, alter_table: &AlterView) -> Result<Self, AnalysisError>;
16
17    /// apply `create view` to current schema
18    fn apply_create_view(self, create_view: &CreateView) -> Result<Self, AnalysisError>;
19
20    /// apply `create table as` statement to current schema
21    fn apply_create_table_as(self, create_table_as: &CreateTableAs) -> Result<Self, AnalysisError>;
22}