Received: from localhost (unknown [200.46.208.211]) by mail.postgresql.org (Postfix) with ESMTP id 6CF0B632E43 for ; Thu, 4 Jun 2009 15:33:11 -0300 (ADT) Received: from mail.postgresql.org ([200.46.204.86]) by localhost (mx1.hub.org [200.46.208.211]) (amavisd-maia, port 10024) with ESMTP id 79947-06 for ; Thu, 4 Jun 2009 15:33:06 -0300 (ADT) Received: from cvs.postgresql.org (cvs.postgresql.org [217.196.146.206]) by mail.postgresql.org (Postfix) with ESMTP id 4127463259C for ; Thu, 4 Jun 2009 15:33:09 -0300 (ADT) Received: by cvs.postgresql.org (Postfix, from userid 1007) id 3188475331E; Thu, 4 Jun 2009 18:33:08 +0000 (UTC) MIME-Version: 1.0 To: pgsql-committers@postgresql.org Subject: pgsql: Improve the recently-added support for properly pluralized error X-Mailer: activitymail 1.24, http://search.cpan.org/dist/activitymail/ Content-Type: text/plain Message-Id: <20090604183308.3188475331E@cvs.postgresql.org> Date: Thu, 4 Jun 2009 18:33:08 +0000 (UTC) From: tgl@postgresql.org (Tom Lane) X-Virus-Scanned: Maia Mailguard 1.0.1 X-Spam-Status: No, hits=0 tagged_above=0 required=5 tests=none X-Spam-Level: X-Archive-Number: 200906/50 X-Sequence-Number: 37254 Log Message: ----------- Improve the recently-added support for properly pluralized error messages by extending the ereport() API to cater for pluralization directly. This is better than the original method of calling ngettext outside the elog.c code because (1) it avoids double translation, which wastes cycles and in the worst case could give a wrong result; and (2) it avoids having to use a different coding method in PL code than in the core backend. The client-side uses of ngettext are not touched since neither of these concerns is very pressing in the client environment. Per my proposal of yesterday. Modified Files: -------------- pgsql/doc/src/sgml: nls.sgml (r1.17 -> r1.18) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/nls.sgml?r1=1.17&r2=1.18) sources.sgml (r2.33 -> r2.34) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/sources.sgml?r1=2.33&r2=2.34) pgsql/src/backend/catalog: dependency.c (r1.87 -> r1.88) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/dependency.c?r1=1.87&r2=1.88) pg_proc.c (r1.162 -> r1.163) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/pg_proc.c?r1=1.162&r2=1.163) pg_shdepend.c (r1.32 -> r1.33) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/pg_shdepend.c?r1=1.32&r2=1.33) pgsql/src/backend/executor: execQual.c (r1.246 -> r1.247) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/execQual.c?r1=1.246&r2=1.247) pgsql/src/backend: nls.mk (r1.25 -> r1.26) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/nls.mk?r1=1.25&r2=1.26) pgsql/src/backend/parser: parse_func.c (r1.214 -> r1.215) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/parse_func.c?r1=1.214&r2=1.215) pgsql/src/backend/postmaster: bgwriter.c (r1.58 -> r1.59) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/postmaster/bgwriter.c?r1=1.58&r2=1.59) pgsql/src/backend/utils/error: elog.c (r1.213 -> r1.214) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/error/elog.c?r1=1.213&r2=1.214) pgsql/src/include/utils: elog.h (r1.99 -> r1.100) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/utils/elog.h?r1=1.99&r2=1.100) pgsql/src/pl/plperl: nls.mk (r1.5 -> r1.6) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/pl/plperl/nls.mk?r1=1.5&r2=1.6) pgsql/src/pl/plpgsql/src: nls.mk (r1.7 -> r1.8) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/pl/plpgsql/src/nls.mk?r1=1.7&r2=1.8) pl_exec.c (r1.241 -> r1.242) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/pl/plpgsql/src/pl_exec.c?r1=1.241&r2=1.242) pgsql/src/pl/plpython: nls.mk (r1.4 -> r1.5) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/pl/plpython/nls.mk?r1=1.4&r2=1.5) plpython.c (r1.120 -> r1.121) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/pl/plpython/plpython.c?r1=1.120&r2=1.121) pgsql/src/pl/tcl: nls.mk (r1.4 -> r1.5) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/pl/tcl/nls.mk?r1=1.4&r2=1.5)