On Wed, May 20, 2020 at 2:24 PM Tom Lane <t...@sss.pgh.pa.us> wrote: > Right; I'd done the same arithmetic. Since we currently have a total > of 450 keywords of all flavors, that means we can make either 64% > of them or 74.6% of them be safe to use as bare column labels. While > that's surely better than today, it doesn't seem like it's going to > make for any sort of sea change in the extent of the problem. So I was > feeling a bit discouraged by these results.
I don't think you should feel discouraged by these results. They assume that people are just as likely to have a problem with a reserved keyword as an unreserved keyword, and I don't think that's actually true. The 25.4% of keywords that aren't handled this way include, to take a particularly egregious example, "AS" itself. And I don't think many people are going to be sad if "select 1 as;" fails to treat "as" as a column label. Also, even if we only made 74.6% of these safe to use as bare column labels, or even 64%, I think that's actually pretty significant. If I could reduce my mortgage payment by 64%, I would be pretty happy. For many people, that would be a sufficiently large economic impact that it actually would be a sea change in terms of their quality of life. I don't see a reason to suppose that's not also true here.[1] I do like the idea of considering "can be a bare column label" as an independent dimension from the existing keyword classification. Presumably we would then have, in addition to the four existing keyword productions, but then also a separate bare_column_label_keyword: production that would include many of the same keywords. One nice thing about that approach is that we would then have a clear list of exactly which keywords can't be given that treatment, and if somebody wanted to go investigate possible improvements for any of those, they could do so. I think we'd want a cross-check: check_keywords.pl should contain the list of keywords that are expected to be excluded from this new production, so that any time someone adds a new keyword, they've either got to add it to the new production or add it to the exception list. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company [1] On the other hand, if I had 64% fewer ants in my picnic basket, I would probably still be unhappy with the number of ants in my picnic basket, so it all depends on context and perspective.