Skip site navigation (1) Skip section navigation (2)

Re: [GENERAL] trouble with to_char('L')

From: Bruce Momjian <bruce(at)momjian(dot)us>
To: Hiroshi Inoue <inoue(at)tpf(dot)co(dot)jp>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Alvaro Herrera <alvherre(at)commandprompt(dot)com>, Mikko <mhannesy(at)gmail(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: [GENERAL] trouble with to_char('L')
Date: 2010-03-02 03:36:44
Message-ID: 201003020336.o223ai221533@momjian.us (view raw or flat)
Thread:
Lists: pgsql-generalpgsql-hackers
Hiroshi Inoue wrote:
> Bruce Momjian wrote:
> > Bruce Momjian wrote:
> >> Hiroshi Inoue wrote:
> >>> Bruce Momjian wrote:
> >>>> Hiroshi Inoue wrote:
> >>>>> Bruce Momjian wrote:
> >>>>>> Where are we on this issue?
> >>>>> Oops I forgot it completely.
> >>>>> I have a little improved version and would post it tonight.
> >>>> Ah, very good.  Thanks.
> >>> Attached is an improved version.
> >> I spent many hours on this patch and am attaching an updated version.
> >> I have restructured the code and added many comments, but this is the
> >> main one:
> >>
> >> 	*  Ideally, the server encoding and locale settings would
> >> 	*  always match.  Unfortunately, WIN32 does not support UTF-8
> >> 	*  values for setlocale(), even though PostgreSQL runs fine with
> >> 	*  a UTF-8 encoding on Windows:
> >> 	*
> >> 	*      http://msdn.microsoft.com/en-us/library/x99tb11d.aspx
> >> 	*
> >> 	*  Therefore, we must set LC_CTYPE to match LC_NUMERIC and
> >> 	*  LC_MONETARY, call localeconv(), and use mbstowcs() to
> >> 	*  convert the locale-aware string, e.g. Euro symbol, which
> >> 	*  is not in UTF-8 to the server encoding.
> >>
> >> I need someone with WIN32 experience to review and test this patch.
> > 
> > I don't understand why cache_locale_time() works on Windows.  It sets
> > the LC_CTYPE but does not do any encoding coversion.
> 
> Doesn't strftime_win32 do the conversion?

Oh, I now see strftime is redefined as a macro in that C files.  Thanks.

> > Do month and
> > day-of-week names not work either, or do they work and the encoding
> > conversion for numeric/money, e.g. Euro, it not necessary?
> 
> db_strdup does the conversion.

Should we pull the encoding conversion into a separate function and have
strftime_win32() and db_strdup() both call it?

-- 
  Bruce Momjian  <bruce(at)momjian(dot)us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  PG East:  http://www.enterprisedb.com/community/nav-pg-east-2010.do

In response to

Responses

pgsql-hackers by date

Next:From: Tom LaneDate: 2010-03-02 04:37:01
Subject: Re: Hung postmaster (8.3.9)
Previous:From: Aidan Van DykDate: 2010-03-02 02:08:27
Subject: Re: Re: Hot Standby query cancellation and StreamingReplication integration

pgsql-general by date

Next:From: Tom LaneDate: 2010-03-02 04:37:01
Subject: Re: Hung postmaster (8.3.9)
Previous:From: Ed L.Date: 2010-03-02 01:48:15
Subject: Re: [SOLVED] Re: Hung postmaster (8.3.9)

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group