Re: column information from view

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

In response to

Responses

Browse pgsql-general by date

  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