如何在 Redshift 或 Postgres 的视图中获取列依赖?

How to get column dependencies in views in Redshift or Postgres?

我已经在 Redshift 中定义了一些基于其他 views/tables 的视图,并希望从系统表中获取有关列级依赖项的信息。

比如说,我有这些定义:

CREATE TABLE t1 AS (SELECT 2 as a, 4 as b, 99 as c );
CREATE VIEW v1 AS (SELECT a, b FROM t1);
CREATE VIEW v2 AS (SELECT a*b/2 as x FROM v1);

我想做的是在系统表或目录表上创建某种查询,return 类似于:

target_column |  target_table_or_view | source_column | source_table_or_view |
------------------------------------------------------------------------------
     x        |          v2           |        a      |           v1
     x        |          v2           |        b      |           v1
     a        |          v1           |        a      |           t1
     b        |          v1           |        b      |           t1

我已经尝试过此处给出的解决方案:。但是,此查询不会生成我正在寻找的 "target column" 列,我不知道如何调整它。

这可能吗?理想情况下,我想在 Redshift 中执行此操作,但如果需要,我可以使用更新版本的 Postgres。

在 PostgreSQL 中没有与“目标列”关联的依赖项,因此您无法在元数据中找到它。

它是对源table和列有依赖的完整视图(确切地说是它的查询重写规则)。