Re: Refactoring identifier checks to consistently use strcmp

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: Raw Message | Whole Thread | Download mbox | Resend email
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
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

In response to


Browse pgsql-hackers by date

  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.