On Fri, Aug 22, 2014 at 2:02 PM, Tom Lane <t...@sss.pgh.pa.us> wrote: > Robert Haas <robertmh...@gmail.com> writes: >> On Thu, Aug 21, 2014 at 2:13 PM, Tom Lane <t...@sss.pgh.pa.us> wrote: >>> Well, if there are any extant applications that use that exact phrasing, >>> they're going to be broken in any case. That does not mean that we have >>> to break every other appearance of "cube". I think that special-casing >>> appearances of cube(...) in GROUP BY lists might be a feasible approach. > >> Not really. As pointed out downthread, you can't distinguish "cube" >> from CUBE. We could fix that with a big enough hammer, of course, but >> it would be a mighty big hammer. > > I'm not convinced of that; I think some creative hackery in the grammar > might be able to deal with this. It would be a bit ugly, for sure, but > if it works it would be a localized fix.
Well, I have no idea how to do that. I think the only way you'd be able to is if you make productions like ColId and ColLabel return something different for a keyword than they do for an IDENT. And that's not going to be a localized change. If you've got another proposal, I'm all ears... > Meanwhile, I don't believe > that it's going to be possible to rename the cube extension in any way > that's even remotely acceptable for its users ("remotely acceptable" > here means "pg_upgrade works", never mind what's going to be needed > to fix their applications). > > So the proposal you are pushing is going > to result in seriously teeing off some fraction of our userbase; > and the argument why that would be acceptable seems to boil down to > "I think there are few enough of them that we don't have to care" > (an opinion based on little evidence IMO). The only hard statistics I am aware of are from Heroku. Peter Geoghegan was kind enough to find me the link: https://www.youtube.com/watch?v=MT2gzzbyWpw At around 8 minutes, he shows utilization statistics for cube at around 1% across their install base. That's higher than I would have guessed, so, eh, shows what I know. In any case, I'm not so much advocating not caring at all as confining the level of caring to what can be done without moving the earth. > I think it's worth investing > some work, and perhaps accepting some ugly code, to try to avoid that. I can accept ugly code, but I feel strongly that we shouldn't accept ugly semantics. Forcing cube to get out of the way may not be pretty, but I think it will be much worse if we violate the rule that quoting a keyword strips it of its special meaning; or the rule that there are four kinds of keywords and, if a keyword of a particular class is accepted as an identifier in a given context, all other keywords in that class will also be accepted as identifiers in that context. Violating those rules could have not-fun-at-all consequences like needing to pass additional context information to ruleutils.c's quote_identifier() function, or not being able to dump and restore a query from an older version even with --quote-all-identifiers. Renaming the cube type will suck for people who are using it; but it will only have to be done once; weird stuff like the above will be with us forever. -- 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