Tom Lane wrote:
> Magnus Hagander <magnus@hagander.net> writes:
>> *** a/src/backend/utils/adt/pg_locale.c
>> --- b/src/backend/utils/adt/pg_locale.c
>> ***************
>> *** 54,59 ****
>> --- 54,60 ----
>> #include "utils/memutils.h"
>> #include "utils/pg_locale.h"
>
>> + #include "mb/pg_wchar.h"
>
>> #define MAX_L10N_DATA 80
>
> Please stick to the convention of including include files in
> alphabetical order.
Check.
>> + strftime_win32(char *dst, size_t dstlen, const char *format, const struct tm *tm)
>> + {
>> + size_t len;
>> + wchar_t wbuf[MAX_L10N_DATA];
>> + int encoding;
>> +
>> + encoding = GetDatabaseEncoding();
>> + if (encoding == PG_SQL_ASCII)
>> + return len;
>
> Surely this is returning an uninitialized variable, not to mention
> failing to accomplish any of the goals of the function. I don't think
> breaking things completely for SQL_ASCII was part of the plan.
Gah, true, that's me breaking it. That was correct in Hiroshi-san's
patch. My bad, sorry.
>
>> + ereport(ERROR,
>> + (errmsg("could not convert string to UTF-8:error %lu", GetLastError())));
>
> This is not exactly per message style guidelines. Maybe it's just a
> can't-happen case, but if so make it elog not ereport.
Check.
//Magnus