Re: [HACKERS] Getting server crash on Windows when using ICUcollation - Mailing list pgsql-hackers

From Peter Eisentraut
Subject Re: [HACKERS] Getting server crash on Windows when using ICUcollation
Date
Msg-id 042df061-9e91-12d7-6c86-94aa1186ee27@2ndquadrant.com
Whole thread Raw
In response to Re: [HACKERS] Getting server crash on Windows when using ICU collation  (Ashutosh Sharma <ashu.coek88@gmail.com>)
Responses Re: [HACKERS] Getting server crash on Windows when using ICU collation
List 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 by date:

Previous
From: Ildus Kurbangaliev
Date:
Subject: Re: [HACKERS] Bug in ExecModifyTable function and trigger issuesfor foreign tables
Next
From: "Maeldron T."
Date:
Subject: [HACKERS] logical replication read-only slave