Fix ICU collation use on Windows

Windows uses a separate code path for libc locales.  The code previously
ended up there also if an ICU collation should be used, leading to a
crash.

Reported-by: Ashutosh Sharma <ashu.coek88@gmail.com>
This commit is contained in:
Peter Eisentraut 2017-06-16 10:08:54 -04:00
parent 3ef97e725e
commit 41839b7abc

View File

@ -1433,7 +1433,8 @@ varstr_cmp(char *arg1, int len1, char *arg2, int len2, Oid collid)
#ifdef WIN32 #ifdef WIN32
/* Win32 does not have UTF-8, so we need to map to UTF-16 */ /* Win32 does not 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 a1len;
int a2len; int a2len;