On 3/13/15 6:48 AM, Robert Haas wrote:
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.
Yeah, that doesn't sound like a good tradeoff compared to making people
type some extra ()s. :(
We should at least support ()s on the other commands though, so that
we're consistent.
--
Jim Nasby, Data Architect, Blue Treble Consulting
Data in Trouble? Get it in Treble! http://BlueTreble.com
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers