Search Postgresql Archives

Re: { SELECT *->NOT(column1, column2) FROM table } syntax idea

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>>On Wed, Jun 15, 2011 at 6:08 PM, David Johnston <polobo@xxxxxxxxx> wrote:
>>  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.

>Even with CREATE VIEW foo AS SELECT * FROM bar you do not get this
behavior.  Try that, then use \dv foo and you'll see that it has expanded
the set of columns at CREATE VIEW time.  It will not get any new columns you
add to >the underlying table.
> (tested on 8.4)
>So this is a deeper issue than just being able to exclude certain tables.
>Derrick

First: I intentionally said (DROP/CREATE the VIEW) because of this fact -
and that does not bother me that much; but I'd rather not have to change the
view definition in addition to dropping and recreating it.

What I am basically requesting is that the rewriter that handles evaluation
of " * " within a Select List be able to be told that specific columns, by
name, are not to be included in the resulting expansion.  In the case where
the name would be ambiguous neither/none of the fields would be output -
though if you prefix the column with the table you could just exclude that
specific column.  This would help when you want to use:

SELECT *
FROM t1
JOIN t2 ON (t1.id = t2.id)

And you do not want a duplicate (and auto-named) id column.  You can just
do:

SELECT *->NOT(t2.id)
FROM t1 
JOIN t2 ON (t1.id = t2.id)

And only the id field from column 1 will display

David J.





-- 
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux