From 1c4d05e85ae467093b3d7391b69e5787ae9c0d11 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sat, 12 Apr 2008 23:21:04 +0000 Subject: [PATCH] Clean up a few places where Datums were being treated as pointers without going through DatumGetPointer or some other "official" conversion macro. Not actually a bug, since Datum the same size as pointer is the only supported case at the moment, but good cleanup for the future. Gavin Sherry --- src/backend/utils/adt/varlena.c | 3 ++- src/backend/utils/mb/mbutils.c | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/backend/utils/adt/varlena.c b/src/backend/utils/adt/varlena.c index 2fdcd70392..657f0f89b8 100644 --- a/src/backend/utils/adt/varlena.c +++ b/src/backend/utils/adt/varlena.c @@ -754,7 +754,8 @@ text_substring(Datum str, int32 start, int32 length, bool length_not_specified) * If we're working with an untoasted source, no need to do an extra * copying step. */ - if (VARATT_IS_COMPRESSED(str) || VARATT_IS_EXTERNAL(str)) + if (VARATT_IS_COMPRESSED(DatumGetPointer(str)) || + VARATT_IS_EXTERNAL(DatumGetPointer(str))) slice = DatumGetTextPSlice(str, slice_start, slice_size); else slice = (text *) DatumGetPointer(str); diff --git a/src/backend/utils/mb/mbutils.c b/src/backend/utils/mb/mbutils.c index a674ae58ea..301b3b997e 100644 --- a/src/backend/utils/mb/mbutils.c +++ b/src/backend/utils/mb/mbutils.c @@ -313,7 +313,7 @@ pg_convert_to(PG_FUNCTION_ARGS) result = DirectFunctionCall3(pg_convert, string, src_encoding_name, dest_encoding_name); - PG_RETURN_BYTEA_P(result); + PG_RETURN_DATUM(result); } /* @@ -340,7 +340,7 @@ pg_convert_from(PG_FUNCTION_ARGS) * in this case it will be because we've told pg_convert to return one * that is valid as text in the current database encoding. */ - PG_RETURN_TEXT_P(result); + PG_RETURN_DATUM(result); } /* -- 2.39.5