Re: [HACKERS] Getting server crash on Windows when using ICUcollation
От | Peter Eisentraut |
---|---|
Тема | Re: [HACKERS] Getting server crash on Windows when using ICUcollation |
Дата | |
Msg-id | 042df061-9e91-12d7-6c86-94aa1186ee27@2ndquadrant.com обсуждение исходный текст |
Ответ на | Re: [HACKERS] Getting server crash on Windows when using ICU collation (Ashutosh Sharma <ashu.coek88@gmail.com>) |
Ответы |
Re: [HACKERS] Getting server crash on Windows when using ICU collation
|
Список | pgsql-hackers |
On 6/12/17 00:38, Ashutosh Sharma wrote: > PFA patch that fixes the issue described in above thread. As mentioned > in the above thread, the crash is basically happening in varstr_cmp() > function and it's only happening on Windows because in varstr_cmp(), > if the collation provider is ICU, we don't even think of calling ICU > functions to compare the string. Infact, we directly attempt to call > the OS function wsccoll*() which is not expected. Thanks. Maybe just diff --git a/src/backend/utils/adt/varlena.c b/src/backend/utils/adt/varlena.c index a0dd391f09..2506f4eeb8 100644 --- a/src/backend/utils/adt/varlena.c +++ b/src/backend/utils/adt/varlena.c @@ -1433,7 +1433,7 @@ varstr_cmp(char *arg1, int len1, char *arg2, int len2, Oid collid)#ifdef WIN32 /* Win32 doesnot have UTF-8, so we need to map to UTF-16 */ - if (GetDatabaseEncoding() == PG_UTF8) + if (GetDatabaseEncoding() == PG_UTF8 && (!mylocale || mylocale->provider == COLLPROVIDER_LIBC)) { int a1len; int a2len; -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
В списке pgsql-hackers по дате отправления: