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
fix_strxfrm.patch
Description: Binary data
---------------------------(end of broadcast)--------------------------- TIP 4: Have you searched our list archives? http://archives.postgresql.org