@@ -32,7 +32,6 @@ use crate::SelectBuilder;
3232use crate :: ViewRewriter ;
3333use crate :: binder:: Binder ;
3434use crate :: planner:: semantic:: normalize_identifier;
35- use crate :: plans:: AlterViewPlan ;
3635use crate :: plans:: CreateViewPlan ;
3736use crate :: plans:: DescribeViewPlan ;
3837use crate :: plans:: DropViewPlan ;
@@ -84,37 +83,14 @@ impl Binder {
8483 & mut self ,
8584 stmt : & AlterViewStmt ,
8685 ) -> Result < Plan > {
87- let AlterViewStmt {
88- catalog,
89- database,
90- view,
91- columns,
92- query,
93- } = stmt;
94-
95- let mut query = * query. clone ( ) ;
96- let tenant = self . ctx . get_tenant ( ) ;
97- let ( catalog, database, view_name) =
98- self . normalize_object_identifier_triple ( catalog, database, view) ;
99- let column_names = columns
100- . iter ( )
101- . map ( |ident| normalize_identifier ( ident, & self . name_resolution_ctx ) . name )
102- . collect :: < Vec < _ > > ( ) ;
103- let mut visitor = ViewRewriter {
104- current_database : database. clone ( ) ,
105- } ;
106- query. walk_mut ( & mut visitor) ?;
107- let subquery = format ! ( "{}" , query) ;
108-
109- let plan = AlterViewPlan {
110- tenant,
111- catalog,
112- database,
113- view_name,
114- column_names,
115- subquery,
116- } ;
117- Ok ( Plan :: AlterView ( plan. into ( ) ) )
86+ let _ = stmt;
87+ // View dependencies are tracked from the stored query. Changing the
88+ // definition or output columns in place would require rewriting lineage
89+ // metadata and makes rename/restore semantics harder to reason about.
90+ // TODO: support ALTER VIEW <name> RENAME TO <new_name>.
91+ Err ( databend_common_exception:: ErrorCode :: Unimplemented (
92+ "ALTER VIEW does not support changing the view query" ,
93+ ) )
11894 }
11995
12096 #[ async_backtrace:: framed]
0 commit comments