| From: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> |
|---|---|
| To: | Daniel Gustafsson <daniel(at)yesql(dot)se> |
| Cc: | pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | Re: Refactoring identifier checks to consistently use strcmp |
| Date: | 2017-04-04 03:52:57 |
| Message-ID: | 20170404035257.weshsv2fee474oif@alvherre.pgsql |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Daniel Gustafsson wrote:
> Testing DefElem options is done with both strcmp() and pg_strcasecmp() a bit
> mixed. Since the option defnames are all lowercased, either via IDENT, keyword
> rules or “by hand” with makeString(), using strcmp() is safe (and assumed to be
> so in quite a lot of places).
>
> While it’s not incorrect per se to use pg_strcasecmp(), it has the potential to
> hide a DefElem created with a mixed-case defname where it in other places is
> expected to be in lowercase, which may lead to subtle bugs.
>
> The attached patch refactors to use strcmp() consistently for option processing
> in the command code as a pre-emptive belts+suspenders move against such subtle
> bugs and to make the code more consistent. Also reorders a few checks to have
> all in the same “format” and removes a comment related to the above.
>
> Tested with randomizing case on options in make check (not included in patch).
Does it work correctly in the Turkish locale?
--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Amit Langote | 2017-04-04 03:57:31 | Re: wait event documentation |
| Previous Message | Robert Haas | 2017-04-04 03:48:40 | Re: [POC] A better way to expand hash indexes. |