Re: initdb "Fails to initialize lc_time" (7.3.1 + Darwin)

Поиск
Список
Период
Сортировка
От Drew Wilson
Тема Re: initdb "Fails to initialize lc_time" (7.3.1 + Darwin)
Дата
Msg-id D432D542-AB0E-11D6-9184-003065A6FF2E@speakeasy.net
обсуждение исходный текст
Список pgsql-admin
Tom - thanks for your detailed reply.

Based on your investigation I found a work-around: unset $LANG before
calling initdb --no-locale.

With this work-around, everything appears to be start up correctly (at
least on my 10.1.x system.)

Is there anything I can do to help investigate further?

Thanks,

Drew


On Wednesday, August 7, 2002, at 11:04 AM, Tom Lane wrote:

> Yeah, I can reproduce that here.  And although initdb gets to
> completion, the postmaster won't start:
>
> FATAL:  invalid value for option 'LC_MONETARY': 'en_US'
>
> The trigger for this problem is that you have LANG = en_US in your
> environment, but it seems that OS X doesn't really support that setting
> fully.  At least setlocale() rejects it for the MONETARY, NUMERIC, and
> TIME categories.  This causes two problems:
>
> * guc.c's initialization of the LC_foo variables fails; this is
> harmless
> but produces annoying warnings on stderr.  (I've fixed the
> misformatting
> of those messages, at least.)  We could perhaps have the init-time
> values be "C" not "", but that would mean lack of localization of some
> startup error messages; I'd rather live with the warnings on
> misconfigured systems than lose functionality on correctly configured
> ones.
>
> * initdb puts LC_MONETARY = 'en_US', etc, into postgresql.conf, causing
> a FATAL error during postmaster startup when the assign_hook rejects
> the
> value.
>
> I am not sure if initdb can do much to detect and reject bad locale
> settings.  locale(1) is apparently not portable (at least I don't see
> it
> on my OS X system), and it's probably not worth compiling a test
> program
> to probe what setlocale() does.  Peter, any ideas?
>
> Also, although initdb --no-locale gets around the startup failure, you
> still see all the "Failed to initialize" chatter.  This is because
> initdb massages its own variables but doesn't unset LANG when you use
> that option.  Peter, why did you set up initdb's locale switches that
> way?  Why don't you have them set/unset the standard environment
> variable names, so that the effects are actually seen by programs
> called
> by initdb?


В списке pgsql-admin по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Postgres performance slowly gets worse over a month
Следующее
От: Andrew Sullivan
Дата:
Сообщение: Re: Postgres performance slowly gets worse over a month