Обсуждение: Re: [pgsql-hackers-win32] initdb problen
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 problenWhat 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
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
Patch applied. Thanks. --------------------------------------------------------------------------- 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