Wouldn't it be easy enough to write a little program to suck in the column 
names from the information schema, and output the CREATE VIEW statement, 
excluding all the columns you want to exclude?

Then, if the tables have changed, just run the program, let it fetch the 
information from the information schema, do the DROP and CREATE, and you're 
done.

Susan C.

________________________________
From: pgsql-general-ow...@postgresql.org 
[mailto:pgsql-general-ow...@postgresql.org] On Behalf Of David Johnston
Sent: Wednesday, June 15, 2011 3:08 PM
To: pgsql-general@postgresql.org
Subject: [GENERAL] { SELECT *->NOT(column1, column2) FROM table } syntax idea

Is there, or has there ever been, a discussion about introducing syntax to 
handle specifying which columns you do NOT want to output in the SELECT list?

The use case I am running into is mostly within VIEWS.  I want to specify 
"SELECT * FROM table" but there are a couple of fields that I do NOT want to 
output (for instance a password hash field for a user table).  I guess it would 
probably be better form to move those columns to a separate enhanced 
permissions table but since PostgreSQL allows for per-column permissions that 
is not strictly necessary.  Listing all the wanted columns is not desirable 
though obviously possible.  The main reason to avoid doing so is to allow for a 
view to output all the columns of the underlying tables.  If I drop/create the 
view after altering the underlying tables the new view will have the additional 
columns without any direct change to the view being required.

David J.



Reply via email to