From fbee97664e89b71b91f9185b9f4b114c465b0c69 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Mon, 16 Apr 2001 02:42:01 +0000 Subject: [PATCH] getdatabaseencoding() and PG_encoding_to_char() were being sloppy about converting char* strings to type 'name'. Imagine my surprise when 7.1 release coredumped upon start when compiled --enable-multibyte ... --- src/backend/utils/init/miscinit.c | 6 +++--- src/backend/utils/mb/common.c | 5 +++-- src/backend/utils/mb/mbutils.c | 6 ++++-- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index a6dffbee10..33b9e11203 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/init/miscinit.c,v 1.64 2001/03/22 04:00:00 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/init/miscinit.c,v 1.65 2001/04/16 02:42:01 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -168,13 +168,13 @@ SetDataDir(const char *dir) Datum getdatabaseencoding(PG_FUNCTION_ARGS) { - PG_RETURN_NAME("SQL_ASCII"); + return DirectFunctionCall1(namein, CStringGetDatum("SQL_ASCII")); } Datum PG_encoding_to_char(PG_FUNCTION_ARGS) { - PG_RETURN_NAME("SQL_ASCII"); + return DirectFunctionCall1(namein, CStringGetDatum("SQL_ASCII")); } Datum diff --git a/src/backend/utils/mb/common.c b/src/backend/utils/mb/common.c index 1b3fe5fcf9..9c75b6c919 100644 --- a/src/backend/utils/mb/common.c +++ b/src/backend/utils/mb/common.c @@ -2,7 +2,7 @@ * This file contains some public functions * usable for both the backend and the frontend. * Tatsuo Ishii - * $Id: common.c,v 1.12 2001/02/11 01:59:22 ishii Exp $ + * $Id: common.c,v 1.13 2001/04/16 02:42:01 tgl Exp $ */ #include "postgres.h" @@ -91,8 +91,9 @@ Datum PG_encoding_to_char(PG_FUNCTION_ARGS) { int32 encoding = PG_GETARG_INT32(0); + const char *encoding_name = pg_encoding_to_char(encoding); - PG_RETURN_NAME(pg_encoding_to_char(encoding)); + return DirectFunctionCall1(namein, CStringGetDatum(encoding_name)); } #endif diff --git a/src/backend/utils/mb/mbutils.c b/src/backend/utils/mb/mbutils.c index 2abae59d62..c355bf1e41 100644 --- a/src/backend/utils/mb/mbutils.c +++ b/src/backend/utils/mb/mbutils.c @@ -3,7 +3,7 @@ * client encoding and server internal encoding. * (currently mule internal code (mic) is used) * Tatsuo Ishii - * $Id: mbutils.c,v 1.16 2001/03/08 00:24:34 tgl Exp $ + * $Id: mbutils.c,v 1.17 2001/04/16 02:42:01 tgl Exp $ */ #include "postgres.h" @@ -287,5 +287,7 @@ GetDatabaseEncoding() Datum getdatabaseencoding(PG_FUNCTION_ARGS) { - PG_RETURN_NAME(pg_encoding_to_char(DatabaseEncoding)); + const char *encoding_name = pg_encoding_to_char(DatabaseEncoding); + + return DirectFunctionCall1(namein, CStringGetDatum(encoding_name)); } -- GitLab