Clear up strxfrm() in UTF-8 with locale on Windows - Mailing list pgsql-patches

From ITAGAKI Takahiro
Subject Clear up strxfrm() in UTF-8 with locale on Windows
Date
Msg-id 20070409174312.8794.ITAGAKI.TAKAHIRO@oss.ntt.co.jp
Whole thread Raw
Responses Re: Clear up strxfrm() in UTF-8 with locale on Windows  (Bruce Momjian <bruce@momjian.us>)
Re: Clear up strxfrm() in UTF-8 with locale on Windows  (Magnus Hagander <magnus@hagander.net>)
List pgsql-patches
The attached patch clears up the usage of strxfrm() on Windows. If the
server encoding is UTF-8 and the locale is not C, we should use wcsxfrm()
instead of strxfrm() because UTF-8 locale are not supported on Windows.
We've already have a special version of strcoll() for Windows, but the
usage of strxfrm() was still broken.

When we are caught up in the bug, we see the next error message.
| ERROR:  invalid memory alloc request size 2147483648
If the server is wrong configured between the server encoding and the
locale, strxfrm() could be failed and return values like INT_MAX or
(size_t)-1. We've passed the result+1 straight to palloc(), so the server
tried to allocale more than 1GB of memory and gave up.

Regards,
---
ITAGAKI Takahiro
NTT Open Source Software Center

Attachment

pgsql-patches by date:

Previous
From: "Simon Riggs"
Date:
Subject: Re: Reviewers Guide to DeferredTransactions/TransactionGuarantee
Next
From: ITAGAKI Takahiro
Date:
Subject: Re: autovacuum multiworkers, patch 5