Re: initdb problen - Mailing list pgsql-patches

From Bruce Momjian
Subject Re: initdb problen
Date
Msg-id 200403140348.i2E3m0328631@candle.pha.pa.us
Whole thread Raw
In response to Re: [pgsql-hackers-win32] initdb problen  (Andrew Dunstan <andrew@dunslane.net>)
List pgsql-patches
Your patch has been added to the PostgreSQL unapplied patches list at:

    http://momjian.postgresql.org/cgi-bin/pgpatches

I will try to apply it within the next 48 hours.

---------------------------------------------------------------------------


Andrew Dunstan wrote:
>
>
> I believe that the attached patch may solve this setlocale() problem,
> but I do not have a Windows box handy on which to test it. Can somebody
> who does please try and let us know the results?
>
> thanks
>
> andrew
>
>
>
> Andrew Dunstan wrote:
>
> >the answer is very probably here:
> >http://archives.postgresql.org/pgsql-hackers-win32/2003-10/msg00024.php
> >
> >I thought Bruce said he had this covered, but it hasn't been fixed. I
> >will prepare a patch in the next day or so if someone else doesn't beat
> >me to it.
> >
> >cheers
> >
> >andrew
> >
> >Korea PostgreSQL Users' Group wrote:
> >
> >
> >
> >>it works still problem.
> >>
> >>setlocale() function is not equivalent between unix and win32
> >>
> >>plz check.
> >>
> >>multibyte text is not sorted.
> >>
> >>
> >>----- Original Message -----
> >>From: "Claudio Natoli" <claudio.natoli@memetrics.com>
> >>To: "'Korea PostgreSQL Users' Group'" <pgsql-kr@postgresql.or.kr>; <pgsql-hackers-win32@postgresql.org>
> >>Sent: Friday, March 12, 2004 5:04 PM
> >>Subject: RE: [pgsql-hackers-win32] initdb problen
> >>
> >>
> >>
> >>
> >>
> >>
> >>>What if you instead try:
> >>>
> >>>initdb --locale=C
> >>>
> >>>Looks like "--no-locale" is not "equivalent to --locale=C", at least under
> >>>win32.
> >>>
> >>>Cheers,
> >>>Claudio
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>---------------------------(end of broadcast)---------------------------
> >>TIP 3: if posting/reading through Usenet, please send an appropriate
> >>     subscribe-nomail command to majordomo@postgresql.org so that your
> >>     message can get through to the mailing list cleanly
> >>
> >>
> >>
> >>
> >>
> >
> >
> >---------------------------(end of broadcast)---------------------------
> >TIP 3: if posting/reading through Usenet, please send an appropriate
> >      subscribe-nomail command to majordomo@postgresql.org so that your
> >      message can get through to the mailing list cleanly
> >
> >
> >
>

> Index: src/backend/main/main.c
> ===================================================================
> RCS file: /projects/cvsroot/pgsql-server/src/backend/main/main.c,v
> retrieving revision 1.75
> diff -c -r1.75 main.c
> *** src/backend/main/main.c    5 Mar 2004 01:11:04 -0000    1.75
> --- src/backend/main/main.c    12 Mar 2004 16:27:13 -0000
> ***************
> *** 74,79 ****
> --- 74,83 ----
>   #endif   /* NOPRINTADE */
>   #endif   /* __alpha */
>
> + #ifdef WIN32
> +     char *env_locale;
> + #endif
> +
>   #if defined(NOFIXADE) || defined(NOPRINTADE)
>
>   #if defined(ultrix4)
> ***************
> *** 143,150 ****
> --- 147,176 ----
>        * set later during GUC option processing, but we set it here to allow
>        * startup error messages to be localized.
>        */
> +
> + #ifdef WIN32
> +     /*
> +      * Windows uses codepages rather than the environment, so we work around
> +      * that by querying the environment explicitly first for LC_COLLATE
> +      * and LC_CTYPE. We have to do this because initdb passes those values
> +      * in the environment. If there is nothing there we fall back on the
> +      * codepage.
> +      */
> +
> +     if ((env_locale = getenv("LC_COLLATE")) != NULL)
> +         setlocale(LC_COLLATE,env_locale);
> +     else
> +       setlocale(LC_COLLATE, "");
> +
> +     if ((env_locale = getenv("LC_CTYPE")) != NULL)
> +         setlocale(LC_CTYPE,env_locale);
> +     else
> +       setlocale(LC_CTYPE, "");
> + #else
>       setlocale(LC_COLLATE, "");
>       setlocale(LC_CTYPE, "");
> + #endif
> +
>   #ifdef LC_MESSAGES
>       setlocale(LC_MESSAGES, "");
>   #endif

>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
>
>                http://www.postgresql.org/docs/faqs/FAQ.html

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

pgsql-patches by date:

Previous
From: Claudio Natoli
Date:
Subject: pgstat win32 fix
Next
From: Bruce Momjian
Date:
Subject: Re: PSQLRC environment variable.