问题描述:
视图源定义信息是存在pg_description.description列中,这里有的和创建语句一致,有的不一致。
分析与解决方法:
这个和视图的状态有关。下面是获取视图定义的信息规则:
有效视图:通过Sys_rewrite规则query查询树,反解析query查询获得视图的定义信息。
无效视图:直接通过pg_description.description,得到定义信息
获取视图定义:查询sys_get_viewdef(reloid),如下例子
TEST=# create force view vtest as select * from test;
WARNING: View created with compilation errors
CREATE VIEW
TEST =# select sys_get_viewdef('VTEST'::regclass);
PG_GET_VIEWDEF
---------------------
select * from test;