From f1cfb48efb086f99f6995f5d4b8a7c3ee289d1f0 Mon Sep 17 00:00:00 2001 From: Fujii Masao Date: Tue, 21 Apr 2026 08:37:17 +0900 Subject: [PATCH] plsample: Use TextDatumGetCString() for text-to-CString conversion Replace the outdated DatumGetCString(DirectFunctionCall1(textout, ...)) pattern with TextDatumGetCString(). The macro is the modern, more efficient way to convert a text Datum to a C string as it avoids unnecessary function call machinery and handles detoasting internally. Since plsample serves as reference code for extension authors, it should follow current idiomatic practices. Author: Amul Sul Discussion: https://postgr.es/m/CAAJ_b95-xMvUN1PEqxv8y6g-A-8k+fSgyv20kSZc9eF1wZAUPg@mail.gmail.com --- src/test/modules/plsample/plsample.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/test/modules/plsample/plsample.c b/src/test/modules/plsample/plsample.c index 29248bd70eb..f294f5ca4ad 100644 --- a/src/test/modules/plsample/plsample.c +++ b/src/test/modules/plsample/plsample.c @@ -21,6 +21,7 @@ #include "commands/trigger.h" #include "executor/spi.h" #include "funcapi.h" +#include "utils/builtins.h" #include "utils/fmgrprotos.h" #include "utils/lsyscache.h" #include "utils/syscache.h" @@ -128,7 +129,7 @@ plsample_func_handler(PG_FUNCTION_ARGS) if (isnull) elog(ERROR, "could not find source text of function \"%s\"", proname); - source = DatumGetCString(DirectFunctionCall1(textout, ret)); + source = TextDatumGetCString(ret); ereport(NOTICE, (errmsg("source text of function \"%s\": %s", proname, source))); @@ -244,7 +245,7 @@ plsample_trigger_handler(PG_FUNCTION_ARGS) if (isnull) elog(ERROR, "could not find source text of function \"%s\"", proname); - source = DatumGetCString(DirectFunctionCall1(textout, ret)); + source = TextDatumGetCString(ret); ereport(NOTICE, (errmsg("source text of function \"%s\": %s", proname, source)));