Re: WIP Patch for GROUPING SETS phase 1 - Mailing list pgsql-hackers
From | Robert Haas |
---|---|
Subject | Re: WIP Patch for GROUPING SETS phase 1 |
Date | |
Msg-id | CA+TgmoZp5tDw_K_ichmrdxCXjDqmsWovWMoZ2KAzFZFYc0Q75w@mail.gmail.com Whole thread Raw |
In response to | Re: WIP Patch for GROUPING SETS phase 1 (Tom Lane <tgl@sss.pgh.pa.us>) |
Responses |
Re: WIP Patch for GROUPING SETS phase 1
Re: WIP Patch for GROUPING SETS phase 1 |
List | pgsql-hackers |
On Fri, Aug 22, 2014 at 2:02 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote: > Robert Haas <robertmhaas@gmail.com> writes: >> On Thu, Aug 21, 2014 at 2:13 PM, Tom Lane <tgl@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 therule 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
pgsql-hackers by date: