John Naylor <john.nay...@2ndquadrant.com> writes: > On Wed, Jan 9, 2019 at 2:04 PM Tom Lane <t...@sss.pgh.pa.us> wrote: >> Now the impedance mismatch about case sensitivity is handled with >> my $f = PerfectHash::generate_hash_function(\@keywords, $funcname, >> case_insensitive => !$case_sensitive); >> which is at least a little clearer than before, though I'm not sure >> if it entirely solves the problem.
> It's a bit clearer, but thinking about this some more, it makes sense > for gen_keywordlist.pl to use $case_insensitive, because right now > every instance of the var is "!$case_sensitive". In the attached (on > top of v4), I change the command line option to --citext, and add the > ability to negate it within the option, as '--no-citext'. It's kind of > a double negative for the C-keywords invocation, but we can have the > option for both cases, so we don't need to worry about what the > default is (which is case_insensitive=1). Ah, I didn't realize that Getopt allows having a boolean option defaulting to "on". That makes it more practical to do something here. I'm not in love with "citext" as the option name, though ... that has little to recommend it except brevity, which is not a property we really need here. We could go with "[no-]case-insensitive", perhaps. Or "[no-]case-fold", which is at least a little shorter and less double-negative-y. regards, tom lane