pgsql: Refactor to add pg_strcoll(), pg_strxfrm(), and variants.
Refactor to add pg_strcoll(), pg_strxfrm(), and variants.
Offers a generally better separation of responsibilities for collation
code. Also, a step towards multi-lib ICU, which should be based on a
clean separation of the routines required for collation providers.
Callers with NUL-terminated strings should call pg_strcoll() or
pg_strxfrm(); callers with strings and their length should call the
variants pg_strncoll() or pg_strnxfrm().
Reviewed-by: Peter Eisentraut, Peter Geoghegan
Discussion: /messages/by-id/a581136455c940d7bd0ff482d3a2bd51af25a94f.camel@j-davis.com
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/d87d548cd0304477413a73e9c1d148fb2d40b50d
Modified Files
--------------
src/backend/access/hash/hashfunc.c | 61 +--
src/backend/utils/adt/pg_locale.c | 769 ++++++++++++++++++++++++++++++++++++-
src/backend/utils/adt/varchar.c | 51 +--
src/backend/utils/adt/varlena.c | 368 +++---------------
src/include/utils/pg_locale.h | 13 +
5 files changed, 871 insertions(+), 391 deletions(-)
These patches cause warnings under MSVC.
Of course my patch to improve CI by warning about compiler warnings is
the only one to notice.
https://cirrus-ci.com/task/6199582053367808
--
Justin
On Fri, Feb 24, 2023 at 1:20 PM Justin Pryzby <pryzby@telsasoft.com> wrote:
These patches cause warnings under MSVC.
Of course my patch to improve CI by warning about compiler warnings is
the only one to notice.
It's a shame that it fails the whole Windows task, whereas for the
Unixen we don't do -Werror so you can still see if everything else is
OK, but then we check for errors in a separate task. I don't have any
ideas on how to achieve that, though.
FWIW my CI log scanner also noticed this problem
http://cfbot.cputube.org/highlights/compiler.html. Been wondering how
to bring that to the right people's attention. Perhaps by adding a
clickable ⚠ to the main page next to the item if any of these
"highlights" were detected; perhaps it should take you to a
per-submission history page with the highlights from each version.
On Fri, Feb 24, 2023 at 01:56:05PM +1300, Thomas Munro wrote:
On Fri, Feb 24, 2023 at 1:20 PM Justin Pryzby <pryzby@telsasoft.com> wrote:
These patches cause warnings under MSVC.
Of course my patch to improve CI by warning about compiler warnings is
the only one to notice.It's a shame that it fails the whole Windows task, whereas for the
Unixen we don't do -Werror so you can still see if everything else is
OK, but then we check for errors in a separate task. I don't have any
ideas on how to achieve that, though.
My patch isn't very pretty, but you can see that runs all the tests
before grepping for warnings, rather than failing during compilation as
you said.
IMO the compiler warnings task is separate not only "to avoid failing
the whole task during compilation", but because it's compiled with
optimization. Which is 1) needed to allow some warnings to be warned
about; and, 2) harmful to enable during the "check-world" tests, since
it makes backtraces less accurate.
--
Justin