Re: [QUESTIONS] 6.2.1 COPY X FROM stdin; -- broken pipe
От | Thomas G. Lockhart |
---|---|
Тема | Re: [QUESTIONS] 6.2.1 COPY X FROM stdin; -- broken pipe |
Дата | |
Msg-id | 34F77E50.1DD5DEDF@alumni.caltech.edu обсуждение исходный текст |
Ответы |
Re: [HACKERS] Re: [QUESTIONS] 6.2.1 COPY X FROM stdin; -- broken pipe
|
Список | pgsql-hackers |
> oe> Try setting the environment variable LANG before starting the > oe> postmaster: > oe> $ export LANG=en_US > Unfortunately, this doesn't prevent the backend problem; the backend > still complains about the money format the and front-end gets a broken > pipe. Not sure what about the locale postgres doesn't like. For now, > I guess I'll just stick with my home-built version that doesn't use > the locale at all. I tried this at my clean RH5.0 machine at work, with the RH5.0 rpm installation of Postgres. It didn't help, and I guess I would have been suprised if it did since the locale environment should have defaulted to the "C" (same as "POSIX"?) conventions. I didn't get a backend crash, just the usual symptom. Didn't find a new Postgres package in Cristian's directory when I looked this morning, but _did_ find a glibc2.0.7-2. Unfortunately it didn't seem to fix the rounding problem in date/time. I stopped and restarted the Postgres backend, but did not reboot the machine; was that sufficient? Seems like 2.0.7-2 should have the features (and fixes) Oliver reported for Debian, so don't know the story :( My little test program, which also fails on my RH4.2 system, is included below. It should return some characters related to locale; in this version it tries the numeric decimal point (which does print) and the money decimal point, which doesn't. Used to work, though as I mentioned the code as it is currently may be damaged by my trial and error attempts to get locale support working. - Tom #include <stdlib.h> #include <stdio.h> #include <time.h> #include <locale.h> struct lconv *lc; int main(int argc, char **argv) { if (argc > 1) printf( "environment variable is %s\n", getenv(argv[1])); printf( "locale set to %s\n", setlocale(LC_MONETARY, "C")); lc = localeconv(); printf("%c %c\n", *lc->decimal_point, *lc->mon_decimal_point); exit(0); }
В списке pgsql-hackers по дате отправления: