On 2018-Dec-14, Stephen Frost wrote: > > My vote goes to put the keyword inside of and exclusively in the > > parenthesized option list. > > I disagree with the idea of exclusively having concurrently be in the > parentheses. 'explain buffers' is a much less frequently used option > (though that might, in part, be because it's a bit annoying to write out > explain (analyze, buffers) select...; I wonder if we could have a way to > say "if I'm running analyze, I always want buffers"...),
I'm skeptical. I think EXPLAIN ANALYZE is more common because it has more than one decade of advantage compared to the more detailed option list. Yes, it's also easier, but IMO it's a brain thing (muscle memory), not a fingers thing. > but concurrently reindexing a table (or index..) is going to almost > certainly be extremely common, perhaps even more common than *not* > reindexing concurrently. Well, users can use the reindexdb utility and save some keystrokes. Anyway we don't typically add redundant ways to express the same things. Where we have them, it's just because the old way was there before, and we added the extensible way later. Adding two in the first appearance of a new feature seems absurd to me. After looking at the proposed grammar again today and in danger of repeating myself, IMO allowing the concurrency keyword to appear outside the parens would be a mistake. Valid commands: REINDEX (VERBOSE, CONCURRENTLY) TABLE foo; REINDEX (CONCURRENTLY) INDEX bar; -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services