=== Applying patches on top of PostgreSQL commit ID 73e736137616b86d8bc21ec3cba098e187d883d5 === /etc/rc.d/jail: WARNING: Per-jail configuration via jail_* variables is obsolete. Please consider migrating to /etc/jail.conf. Mon Apr 28 10:27:22 UTC 2025 On branch cf/5301 nothing to commit, working tree clean === using 'git am' to apply patch ./v15-0001-Control-ctype-behavior-internally-with-a-method-.patch === Applying: Control ctype behavior internally with a method table. Using index info to reconstruct a base tree... M src/backend/regex/regc_pg_locale.c M src/backend/utils/adt/pg_locale.c M src/backend/utils/adt/pg_locale_builtin.c M src/backend/utils/adt/pg_locale_icu.c M src/backend/utils/adt/pg_locale_libc.c M src/include/utils/pg_locale.h M src/tools/pgindent/typedefs.list Falling back to patching base and 3-way merge... Auto-merging src/tools/pgindent/typedefs.list Auto-merging src/include/utils/pg_locale.h CONFLICT (content): Merge conflict in src/include/utils/pg_locale.h Auto-merging src/backend/utils/adt/pg_locale_libc.c Auto-merging src/backend/utils/adt/pg_locale_icu.c CONFLICT (content): Merge conflict in src/backend/utils/adt/pg_locale_icu.c Auto-merging src/backend/utils/adt/pg_locale_builtin.c CONFLICT (content): Merge conflict in src/backend/utils/adt/pg_locale_builtin.c Auto-merging src/backend/utils/adt/pg_locale.c Auto-merging src/backend/regex/regc_pg_locale.c CONFLICT (content): Merge conflict in src/backend/regex/regc_pg_locale.c error: Failed to merge in the changes. hint: Use 'git am --show-current-patch=diff' to see the failed patch Patch failed at 0001 Control ctype behavior internally with a method table. When you have resolved this problem, run "git am --continue". If you prefer to skip this patch, run "git am --skip" instead. To restore the original branch and stop patching, run "git am --abort". Unstaged changes after reset: M src/backend/regex/regc_pg_locale.c M src/backend/utils/adt/like.c M src/backend/utils/adt/like_support.c M src/backend/utils/adt/pg_locale.c M src/backend/utils/adt/pg_locale_builtin.c M src/backend/utils/adt/pg_locale_icu.c M src/backend/utils/adt/pg_locale_libc.c M src/include/utils/pg_locale.h M src/tools/pgindent/typedefs.list === using patch(1) to apply patch ./v15-0001-Control-ctype-behavior-internally-with-a-method-.patch === patching file src/backend/regex/regc_pg_locale.c Hunk #1 succeeded at 60 (offset -3 lines). Hunk #2 succeeded at 223 (offset -3 lines). Hunk #3 succeeded at 243 (offset -3 lines). Hunk #4 succeeded at 260 (offset -3 lines). Hunk #5 FAILED at 312. Hunk #6 succeeded at 659 (offset 9 lines). 1 out of 6 hunks FAILED -- saving rejects to file src/backend/regex/regc_pg_locale.c.rej patching file src/backend/utils/adt/like.c patching file src/backend/utils/adt/like_support.c patching file src/backend/utils/adt/pg_locale.c Hunk #1 succeeded at 79 (offset -21 lines). Hunk #2 succeeded at 1067 (offset -144 lines). Hunk #3 succeeded at 1234 (offset -142 lines). Hunk #4 succeeded at 1395 (offset -142 lines). patching file src/backend/utils/adt/pg_locale_builtin.c Hunk #1 FAILED at 25. Hunk #2 succeeded at 77 (offset 1 line). Hunk #3 succeeded at 85 (offset 1 line). Hunk #4 succeeded at 103 (offset 2 lines). Hunk #5 succeeded at 111 (offset 2 lines). Hunk #6 succeeded at 119 (offset 2 lines). Hunk #7 succeeded at 254 (offset 2 lines). 1 out of 7 hunks FAILED -- saving rejects to file src/backend/utils/adt/pg_locale_builtin.c.rej patching file src/backend/utils/adt/pg_locale_icu.c Hunk #1 FAILED at 48. Hunk #2 succeeded at 118 (offset -6 lines). Hunk #3 succeeded at 155 (offset -6 lines). Hunk #4 succeeded at 297 (offset -6 lines). Hunk #5 succeeded at 471 (offset -6 lines). Hunk #6 succeeded at 491 (offset -6 lines). Hunk #7 succeeded at 511 (offset -6 lines). Hunk #8 succeeded at 531 (offset -6 lines). 1 out of 8 hunks FAILED -- saving rejects to file src/backend/utils/adt/pg_locale_icu.c.rej patching file src/backend/utils/adt/pg_locale_libc.c Hunk #2 succeeded at 78 (offset -1 lines). Hunk #3 succeeded at 345 (offset -1 lines). Hunk #4 succeeded at 677 (offset -1 lines). patching file src/include/utils/pg_locale.h Hunk #4 FAILED at 174. 1 out of 4 hunks FAILED -- saving rejects to file src/include/utils/pg_locale.h.rej patching file src/tools/pgindent/typedefs.list Hunk #1 succeeded at 1875 with fuzz 1 (offset 46 lines). Unstaged changes after reset: M src/backend/regex/regc_pg_locale.c M src/backend/utils/adt/like.c M src/backend/utils/adt/like_support.c M src/backend/utils/adt/pg_locale.c M src/backend/utils/adt/pg_locale_builtin.c M src/backend/utils/adt/pg_locale_icu.c M src/backend/utils/adt/pg_locale_libc.c M src/include/utils/pg_locale.h M src/tools/pgindent/typedefs.list Removing src/backend/regex/regc_pg_locale.c.rej Removing src/backend/utils/adt/pg_locale_builtin.c.rej Removing src/backend/utils/adt/pg_locale_icu.c.rej Removing src/include/utils/pg_locale.h.rej === using 'git apply' to apply patch ./v15-0001-Control-ctype-behavior-internally-with-a-method-.patch === Applied patch to 'src/backend/regex/regc_pg_locale.c' with conflicts. Applied patch to 'src/backend/utils/adt/like.c' cleanly. Applied patch to 'src/backend/utils/adt/like_support.c' cleanly. Applied patch to 'src/backend/utils/adt/pg_locale.c' cleanly. Applied patch to 'src/backend/utils/adt/pg_locale_builtin.c' with conflicts. Applied patch to 'src/backend/utils/adt/pg_locale_icu.c' with conflicts. Applied patch to 'src/backend/utils/adt/pg_locale_libc.c' cleanly. Applied patch to 'src/include/utils/pg_locale.h' with conflicts. Applied patch to 'src/tools/pgindent/typedefs.list' cleanly. U src/backend/regex/regc_pg_locale.c U src/backend/utils/adt/pg_locale_builtin.c U src/backend/utils/adt/pg_locale_icu.c U src/include/utils/pg_locale.h diff --cc src/backend/regex/regc_pg_locale.c index 78193cfb964,31b8f4a9478..00000000000 --- a/src/backend/regex/regc_pg_locale.c +++ b/src/backend/regex/regc_pg_locale.c @@@ -550,69 -372,27 +369,83 @@@ pg_wc_isspace(pg_wchar c static pg_wchar pg_wc_toupper(pg_wchar c) { - switch (pg_regex_strategy) + if (pg_regex_locale->ctype_is_c) { ++<<<<<<< ours + case PG_REGEX_STRATEGY_C: + if (c <= (pg_wchar) 127) + return pg_ascii_toupper((unsigned char) c); + return c; + case PG_REGEX_STRATEGY_BUILTIN: + return unicode_uppercase_simple(c); + case PG_REGEX_STRATEGY_LIBC_WIDE: + /* force C behavior for ASCII characters, per comments above */ + if (pg_regex_locale->is_default && c <= (pg_wchar) 127) + return pg_ascii_toupper((unsigned char) c); + if (sizeof(wchar_t) >= 4 || c <= (pg_wchar) 0xFFFF) + return towupper_l((wint_t) c, pg_regex_locale->info.lt); + /* FALL THRU */ + case PG_REGEX_STRATEGY_LIBC_1BYTE: + /* force C behavior for ASCII characters, per comments above */ + if (pg_regex_locale->is_default && c <= (pg_wchar) 127) + return pg_ascii_toupper((unsigned char) c); + if (c <= (pg_wchar) UCHAR_MAX) + return toupper_l((unsigned char) c, pg_regex_locale->info.lt); + return c; + case PG_REGEX_STRATEGY_ICU: +#ifdef USE_ICU + return u_toupper(c); +#endif + break; ++======= + if (c <= (pg_wchar) 127) + return pg_ascii_toupper((unsigned char) c); + return c; ++>>>>>>> theirs } - return 0; /* can't get here, but keep compiler quiet */ + else + return pg_regex_locale->ctype->wc_toupper(c, pg_regex_locale); } static pg_wchar pg_wc_tolower(pg_wchar c) { - switch (pg_regex_strategy) + if (pg_regex_locale->ctype_is_c) { ++<<<<<<< ours + case PG_REGEX_STRATEGY_C: + if (c <= (pg_wchar) 127) + return pg_ascii_tolower((unsigned char) c); + return c; + case PG_REGEX_STRATEGY_BUILTIN: + return unicode_lowercase_simple(c); + case PG_REGEX_STRATEGY_LIBC_WIDE: + /* force C behavior for ASCII characters, per comments above */ + if (pg_regex_locale->is_default && c <= (pg_wchar) 127) + return pg_ascii_tolower((unsigned char) c); + if (sizeof(wchar_t) >= 4 || c <= (pg_wchar) 0xFFFF) + return towlower_l((wint_t) c, pg_regex_locale->info.lt); + /* FALL THRU */ + case PG_REGEX_STRATEGY_LIBC_1BYTE: + /* force C behavior for ASCII characters, per comments above */ + if (pg_regex_locale->is_default && c <= (pg_wchar) 127) + return pg_ascii_tolower((unsigned char) c); + if (c <= (pg_wchar) UCHAR_MAX) + return tolower_l((unsigned char) c, pg_regex_locale->info.lt); + return c; + case PG_REGEX_STRATEGY_ICU: +#ifdef USE_ICU + return u_tolower(c); +#endif + break; ++======= + if (c <= (pg_wchar) 127) + return pg_ascii_tolower((unsigned char) c); + return c; ++>>>>>>> theirs } - return 0; /* can't get here, but keep compiler quiet */ + else + return pg_regex_locale->ctype->wc_tolower(c, pg_regex_locale); } diff --cc src/backend/utils/adt/pg_locale_builtin.c index f51768830cd,23504be383a..00000000000 --- a/src/backend/utils/adt/pg_locale_builtin.c +++ b/src/backend/utils/adt/pg_locale_builtin.c @@@ -25,15 -25,6 +25,18 @@@ extern pg_locale_t create_pg_locale_builtin(Oid collid, MemoryContext context); extern char *get_collation_actual_version_builtin(const char *collcollate); ++<<<<<<< ours +extern size_t strlower_builtin(char *dest, size_t destsize, const char *src, + ssize_t srclen, pg_locale_t locale); +extern size_t strtitle_builtin(char *dest, size_t destsize, const char *src, + ssize_t srclen, pg_locale_t locale); +extern size_t strupper_builtin(char *dest, size_t destsize, const char *src, + ssize_t srclen, pg_locale_t locale); +extern size_t strfold_builtin(char *dest, size_t destsize, const char *src, + ssize_t srclen, pg_locale_t locale); + ++======= ++>>>>>>> theirs struct WordBoundaryState { diff --cc src/backend/utils/adt/pg_locale_icu.c index a32c32a0744,1cb24fadea2..00000000000 --- a/src/backend/utils/adt/pg_locale_icu.c +++ b/src/backend/utils/adt/pg_locale_icu.c @@@ -48,19 -48,22 +48,36 @@@ #define TEXTBUFLEN 1024 extern pg_locale_t create_pg_locale_icu(Oid collid, MemoryContext context); ++<<<<<<< ours +extern size_t strlower_icu(char *dest, size_t destsize, const char *src, + ssize_t srclen, pg_locale_t locale); +extern size_t strtitle_icu(char *dest, size_t destsize, const char *src, + ssize_t srclen, pg_locale_t locale); +extern size_t strupper_icu(char *dest, size_t destsize, const char *src, + ssize_t srclen, pg_locale_t locale); +extern size_t strfold_icu(char *dest, size_t destsize, const char *src, + ssize_t srclen, pg_locale_t locale); ++======= ++>>>>>>> theirs #ifdef USE_ICU extern UCollator *pg_ucol_open(const char *loc_str); ++<<<<<<< ours ++======= + static size_t strlower_icu(char *dst, size_t dstsize, const char *src, + ssize_t srclen, pg_locale_t locale); + static size_t strtitle_icu(char *dst, size_t dstsize, const char *src, + ssize_t srclen, pg_locale_t locale); + static size_t strupper_icu(char *dst, size_t dstsize, const char *src, + ssize_t srclen, pg_locale_t locale); + static size_t strfold_icu(char *dst, size_t dstsize, const char *src, + ssize_t srclen, pg_locale_t locale); + static int strncoll_icu(const char *arg1, ssize_t len1, + const char *arg2, ssize_t len2, + pg_locale_t locale); ++>>>>>>> theirs static size_t strnxfrm_icu(char *dest, size_t destsize, const char *src, ssize_t srclen, pg_locale_t locale); diff --cc src/include/utils/pg_locale.h index 7b8cbf58d2c,cd2c812ae26..00000000000 --- a/src/include/utils/pg_locale.h +++ b/src/include/utils/pg_locale.h @@@ -125,16 -174,19 +174,23 @@@ extern void init_database_collation(voi extern pg_locale_t pg_newlocale_from_collation(Oid collid); extern char *get_collation_actual_version(char collprovider, const char *collcollate); ++<<<<<<< ours +extern size_t pg_strlower(char *dst, size_t dstsize, ++======= + extern bool char_is_cased(char ch, pg_locale_t locale); + extern bool char_tolower_enabled(pg_locale_t locale); + extern char char_tolower(unsigned char ch, pg_locale_t locale); + extern size_t pg_strlower(char *dest, size_t destsize, ++>>>>>>> theirs const char *src, ssize_t srclen, pg_locale_t locale); -extern size_t pg_strtitle(char *dest, size_t destsize, +extern size_t pg_strtitle(char *dst, size_t dstsize, const char *src, ssize_t srclen, pg_locale_t locale); -extern size_t pg_strupper(char *dest, size_t destsize, +extern size_t pg_strupper(char *dst, size_t dstsize, const char *src, ssize_t srclen, pg_locale_t locale); -extern size_t pg_strfold(char *dest, size_t destsize, +extern size_t pg_strfold(char *dst, size_t dstsize, const char *src, ssize_t srclen, pg_locale_t locale); extern int pg_strcoll(const char *arg1, const char *arg2, pg_locale_t locale);