Appetite for `SELECT ... EXCLUDE`?

From: Nikhil Benesch <nikhil(dot)benesch(at)gmail(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Appetite for `SELECT ... EXCLUDE`?
Date: 2022-11-18 20:01:18
Message-ID: CAPWqQZQNdwYOEZhMP0KKyorgP8rCeuDNT=SG96gyxZQkbBg1hw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Both DuckDB and Snowflake, as of recently, support a nonstandard `EXCLUDE`
clause in the SELECT list to allow excluding fields from a wildcard [0] [1].

Example from the DuckDB announcement [2]:

SELECT * EXCLUDE (jar_jar_binks, midichlorians) FROM star_wars

Is there any appetite for adding this feature to PostgreSQL? It's quite a bit
less typing when you're querying a relation with many columns and want to
exclude only a few of those columns. Of course the downside is that it is not
(AFAIK) in the SQL standard. I searched the archives and there are a few users
asking about such a feature over the years.

To be fully transparent, I'm asking in part on behalf of Materialize [3], where
we try to follow PostgreSQL's syntax and semantics as closely as possible in our
own SQL dialect. (We're happy to carry around extensions that PostgreSQL
doesn't have, but our worst case scenario is that we eagerly implement an
extension that PostgreSQL implements later in an incompatible way.)

[0]: https://github.com/duckdb/duckdb/issues/2199
[1]: https://docs.snowflake.com/en/release-notes/2022-11.html#select-excluding-and-renaming-specific-columns
[2]: https://duckdb.org/2022/05/04/friendlier-sql.html
[3]: https://materialize.com

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Peter J. Holzer 2022-11-18 20:08:35 Re: Seeking practice recommendation: is there ever a use case to have two or more superusers?
Previous Message Thomas Kellerer 2022-11-18 17:30:15 Re: Calculating average block write time