Bruce Momjian <bruce@momjian.us> writes:
> The third step is for oracle_compat.c::initcap() to use
> formatting.c::str_initcap(). You can see the result; patch attached
> (not applied).
> This greatly reduces the size of initcap(), with the downside that we
> are making two extra copies of the string to convert it to/from char*.
> Is this acceptable?
I'd say not. Can't we do some more refactoring and avoid so many
useless conversions? Seems like str_initcap is the wrong primitive API
--- the work ought to be done by a function that takes a char pointer
and a length. That would be a suitable basis for functions operating
on both text datums and C strings.
(Perhaps what I should be asking is whether the performance of upper()
and lower() is equally bad. Certainly all three should have comparable
code, so maybe they all need refactoring.)
regards, tom lane