From 559222b65a092c2e784cec15b60995629a117799 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 | 4 ++-- src/backend/utils/mb/common.c | 3 ++- src/backend/utils/mb/mbutils.c | 4 +++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 251fc8eceb..b41cec2c7f 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -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 2638139712..5444c92583 100644 --- a/src/backend/utils/mb/common.c +++ b/src/backend/utils/mb/common.c @@ -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 2529005b9a..0cf67c0489 100644 --- a/src/backend/utils/mb/mbutils.c +++ b/src/backend/utils/mb/mbutils.c @@ -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)); } -- 2.39.5