select p.attnum,p.attname::varchar,a.tablename from
pg_attribute p ,
(select a1.localoid,a1.attrnums,a2.tablename
from gp_distribution_policy a1,
(
select a.relfilenode,n.nspname||'.'||a.relname as tablename
from pg_class a LEFT JOIN pg_namespace n ON n.oid = a.relnamespace
where n.nspname='your_schema' and a.relname='your_table'
) a2
where a1.localoid=a2.relfilenode
)a
where p.attrelid=a.localoid and p.attnum =any(a.attrnums)
分解:
select a1.localoid,a1.attrnums from gp_distribution_policy a1
where a1.localoid='503650';
select a.relfilenode,n.nspname||'.'||a.relname as tablename
from pg_class a LEFT JOIN pg_namespace n ON n.oid = a.relnamespace
where n.nspname='your_schema' and a.relname='your_table';