From d9bc7a39465f10e63ad12685918db3c7bec562d1 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Thu, 22 Nov 2007 15:10:05 +0000 Subject: [PATCH] Add comments about thousands separator logic. --- src/backend/utils/adt/formatting.c | 5 +++-- src/bin/psql/print.c | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/backend/utils/adt/formatting.c b/src/backend/utils/adt/formatting.c index 7c6e300f4c..29f8fc7155 100644 --- a/src/backend/utils/adt/formatting.c +++ b/src/backend/utils/adt/formatting.c @@ -1,7 +1,7 @@ /* ----------------------------------------------------------------------- * formatting.c * - * $PostgreSQL: pgsql/src/backend/utils/adt/formatting.c,v 1.134 2007/11/21 22:28:18 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/adt/formatting.c,v 1.135 2007/11/22 15:10:05 momjian Exp $ * * * Portions Copyright (c) 1999-2007, PostgreSQL Global Development Group @@ -3925,10 +3925,11 @@ NUM_prepare_locale(NUMProc *Np) * Number thousands separator * * Some locales (e.g. broken glibc pt_BR), have a comma for decimal, - * but "" for thousands_sep, so we set the thousands_sep too. 2007-02-12 + * but "" for thousands_sep, so we set the thousands_sep too. */ if (lconv->thousands_sep && *lconv->thousands_sep) Np->L_thousands_sep = lconv->thousands_sep; + /* Make sure thousands separator doesn't match decimal point symbol. */ else if (strcmp(Np->decimal, ",") != 0) Np->L_thousands_sep = ","; else diff --git a/src/bin/psql/print.c b/src/bin/psql/print.c index eafb8f6628..2dee6be79d 100644 --- a/src/bin/psql/print.c +++ b/src/bin/psql/print.c @@ -3,7 +3,7 @@ * * Copyright (c) 2000-2007, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/bin/psql/print.c,v 1.92 2007/11/21 22:28:18 momjian Exp $ + * $PostgreSQL: pgsql/src/bin/psql/print.c,v 1.93 2007/11/22 15:10:05 momjian Exp $ * * Note: we include postgres.h not postgres_fe.h so that we can include * catalog/pg_type.h, and thereby have access to INT4OID and similar macros. @@ -2039,6 +2039,7 @@ setDecimalLocale(void) grouping = "3"; /* most common */ if (*extlconv->thousands_sep) thousands_sep = strdup(extlconv->thousands_sep); + /* Make sure thousands separator doesn't match decimal point symbol. */ else if (strcmp(decimal_point, ",") != 0) thousands_sep = ","; else