From: | Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com> |
---|---|
To: | pgsql-general(at)lists(dot)postgresql(dot)org |
Subject: | Re: column information from view |
Date: | 2018-09-14 21:47:07 |
Message-ID: | 60527cd2-6c53-ddf0-901d-20b2221a1a3b@aklaver.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On 9/14/18 2:35 PM, Sebastian P. Luque wrote:
> Hello,
>
> I'm trying to generate a table with information on columns from a
> temporary view that simply selects a subset of columns from a persistent
> view in a given schema. The persistent view joins a number of tables
> with columns that may or may not have a description entered. I need a
> table with a list of columns from the temporary view, and the matching
> descriptions from the underlying persistent view.
>
> Here's my attempt at listing the temporary view's columns and respective
> descriptions:
>
> SELECT cols.ordinal_position, cols.column_name,
> col_description(cl.oid, cols.ordinal_position::INT)
> FROM pg_class cl, information_schema.columns cols
> WHERE cols.table_catalog='dbname' AND cols.table_schema='some_schema' AND
> cols.table_name = 'persistent_view' AND cols.table_name = cl.relname
> ORDER BY cols.ordinal_position::INT;
>
> The problem, of course, is that it lists columns from the persistent
> view, instead of the subset of them in the temporary view. Is there a
> better way to do that? Hopefully this makes sense.
create temp view c_data as select source_id, geography_desc from
catfish_data ;
\d c_data
View "pg_temp_3.c_data"
Column | Type | Collation | Nullable | Default
----------------+-------------------+-----------+----------+---------
source_id | integer | | |
geography_desc | character varying |
SELECT cols.ordinal_position, cols.column_name,
col_description(cl.oid, cols.ordinal_position::INT)
FROM pg_class cl, information_schema.columns cols
WHERE cols.table_catalog='aquaculture' AND cols.table_schema ilike
'pg_temp%' AND
cols.table_name = 'c_data' AND cols.table_name = cl.relname
ORDER BY cols.ordinal_position::INT;
ordinal_position | column_name | col_description
------------------+----------------+-----------------
1 | source_id | NULL
2 | geography_desc | NULL
>
> Thanks,
> --
> Seb
>
>
--
Adrian Klaver
adrian(dot)klaver(at)aklaver(dot)com
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2018-09-14 21:52:28 | Re: column information from view |
Previous Message | Adrian Klaver | 2018-09-14 21:36:13 | Re: Slow shutdowns sometimes on RDS Postgres |