On Wed, Mar 11, 2015 at 5:36 PM, Jim Nasby <jim.na...@bluetreble.com> wrote: > The thing is, ()s are actually an odd-duck. Very little supports it, and > while COPY allows it they're not required. EXPLAIN is a different story, > because that's not WITH; we're actually using () *instead of* WITH.
Generally, I think the commands that don't have () are the older ones, and those that do have it are the newer ones: EXPLAIN, VERBOSE, the newest of our three COPY syntaxes, CREATE MATERIALIZED VIEW, foreign data wrappers, servers, and foreign tables. The older stuff like CREATE DATABASE and REINDEX that uses ad-hoc syntax instead is a real pain in the neck: every time you want to add an option, you've got to add new parser rules and keywords, which is bad for the overall efficiency of parsing. So I think this argument is exactly backwards: parenthesized options are the newer, better way to do this sort of thing. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers