v1-0002-Remove-unnecessary-BlessTupleDesc-after-get_call_.patch
application/x-patch
Filename: v1-0002-Remove-unnecessary-BlessTupleDesc-after-get_call_.patch
Type: application/x-patch
Part: 1
Patch
Format: format-patch
Series: patch v1-0002
Subject: Remove unnecessary BlessTupleDesc() after get_call_result_type()
| File | + | − |
|---|---|---|
| contrib/hstore/hstore_op.c | 1 | 5 |
| contrib/pageinspect/brinfuncs.c | 0 | 1 |
| contrib/pageinspect/btreefuncs.c | 0 | 2 |
| contrib/pageinspect/hashfuncs.c | 0 | 2 |
| contrib/sslinfo/sslinfo.c | 1 | 5 |
| src/backend/statistics/mcv.c | 0 | 1 |
| src/test/regress/regress.c | 0 | 1 |
From 55ca110d878351d30e7cc3a145cc403669efd0e3 Mon Sep 17 00:00:00 2001
From: Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>
Date: Tue, 13 Dec 2022 07:04:42 +0000
Subject: [PATCH v1] Remove unnecessary BlessTupleDesc() after
get_call_result_type()
get_call_result_type() already does what BlessTupleDesc() intends
to do for the returned tuple descriptor. Hence, it is unnecessary
to call BlessTupleDesc() it right after get_call_result_type().
---
contrib/hstore/hstore_op.c | 6 +-----
contrib/pageinspect/brinfuncs.c | 1 -
contrib/pageinspect/btreefuncs.c | 2 --
contrib/pageinspect/hashfuncs.c | 2 --
contrib/sslinfo/sslinfo.c | 6 +-----
src/backend/statistics/mcv.c | 1 -
src/test/regress/regress.c | 1 -
7 files changed, 2 insertions(+), 17 deletions(-)
diff --git a/contrib/hstore/hstore_op.c b/contrib/hstore/hstore_op.c
index 0d4ec16d1e..2b3a1e6a2f 100644
--- a/contrib/hstore/hstore_op.c
+++ b/contrib/hstore/hstore_op.c
@@ -862,13 +862,9 @@ setup_firstcall(FuncCallContext *funcctx, HStore *hs,
if (fcinfo)
{
- TupleDesc tupdesc;
-
/* Build a tuple descriptor for our result type */
- if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE)
+ if (get_call_result_type(fcinfo, NULL, &funcctx->tuple_desc) != TYPEFUNC_COMPOSITE)
elog(ERROR, "return type must be a row type");
-
- funcctx->tuple_desc = BlessTupleDesc(tupdesc);
}
MemoryContextSwitchTo(oldcontext);
diff --git a/contrib/pageinspect/brinfuncs.c b/contrib/pageinspect/brinfuncs.c
index 12a7217038..b812cdeee3 100644
--- a/contrib/pageinspect/brinfuncs.c
+++ b/contrib/pageinspect/brinfuncs.c
@@ -348,7 +348,6 @@ brin_metapage_info(PG_FUNCTION_ARGS)
/* Build a tuple descriptor for our result type */
if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE)
elog(ERROR, "return type must be a row type");
- tupdesc = BlessTupleDesc(tupdesc);
/* Extract values from the metapage */
meta = (BrinMetaPageData *) PageGetContents(page);
diff --git a/contrib/pageinspect/btreefuncs.c b/contrib/pageinspect/btreefuncs.c
index 9375d55e14..5e083a6f9c 100644
--- a/contrib/pageinspect/btreefuncs.c
+++ b/contrib/pageinspect/btreefuncs.c
@@ -537,7 +537,6 @@ bt_page_items_internal(PG_FUNCTION_ARGS, enum pageinspect_version ext_version)
/* Build a tuple descriptor for our result type */
if (get_call_result_type(fcinfo, NULL, &tupleDesc) != TYPEFUNC_COMPOSITE)
elog(ERROR, "return type must be a row type");
- tupleDesc = BlessTupleDesc(tupleDesc);
uargs->tupd = tupleDesc;
@@ -653,7 +652,6 @@ bt_page_items_bytea(PG_FUNCTION_ARGS)
/* Build a tuple descriptor for our result type */
if (get_call_result_type(fcinfo, NULL, &tupleDesc) != TYPEFUNC_COMPOSITE)
elog(ERROR, "return type must be a row type");
- tupleDesc = BlessTupleDesc(tupleDesc);
uargs->tupd = tupleDesc;
diff --git a/contrib/pageinspect/hashfuncs.c b/contrib/pageinspect/hashfuncs.c
index 81815392d7..e1364c5518 100644
--- a/contrib/pageinspect/hashfuncs.c
+++ b/contrib/pageinspect/hashfuncs.c
@@ -259,7 +259,6 @@ hash_page_stats(PG_FUNCTION_ARGS)
/* Build a tuple descriptor for our result type */
if (get_call_result_type(fcinfo, NULL, &tupleDesc) != TYPEFUNC_COMPOSITE)
elog(ERROR, "return type must be a row type");
- tupleDesc = BlessTupleDesc(tupleDesc);
j = 0;
values[j++] = Int32GetDatum(stat.live_items);
@@ -334,7 +333,6 @@ hash_page_items(PG_FUNCTION_ARGS)
/* Build a tuple descriptor for our result type */
if (get_call_result_type(fcinfo, NULL, &tupleDesc) != TYPEFUNC_COMPOSITE)
elog(ERROR, "return type must be a row type");
- tupleDesc = BlessTupleDesc(tupleDesc);
fctx->attinmeta = TupleDescGetAttInMetadata(tupleDesc);
diff --git a/contrib/sslinfo/sslinfo.c b/contrib/sslinfo/sslinfo.c
index 5fd46b9874..6e313ced5e 100644
--- a/contrib/sslinfo/sslinfo.c
+++ b/contrib/sslinfo/sslinfo.c
@@ -370,9 +370,6 @@ ssl_extension_info(PG_FUNCTION_ARGS)
if (SRF_IS_FIRSTCALL())
{
-
- TupleDesc tupdesc;
-
/* create a function context for cross-call persistence */
funcctx = SRF_FIRSTCALL_INIT();
@@ -385,11 +382,10 @@ ssl_extension_info(PG_FUNCTION_ARGS)
fctx = (SSLExtensionInfoContext *) palloc(sizeof(SSLExtensionInfoContext));
/* Construct tuple descriptor */
- if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE)
+ if (get_call_result_type(fcinfo, NULL, &fctx->tupdesc) != TYPEFUNC_COMPOSITE)
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("function returning record called in context that cannot accept type record")));
- fctx->tupdesc = BlessTupleDesc(tupdesc);
/* Set max_calls as a count of extensions in certificate */
max_calls = cert != NULL ? X509_get_ext_count(cert) : 0;
diff --git a/src/backend/statistics/mcv.c b/src/backend/statistics/mcv.c
index f5a7c31272..592c76fea7 100644
--- a/src/backend/statistics/mcv.c
+++ b/src/backend/statistics/mcv.c
@@ -1371,7 +1371,6 @@ pg_stats_ext_mcvlist_items(PG_FUNCTION_ARGS)
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("function returning record called in context "
"that cannot accept type record")));
- tupdesc = BlessTupleDesc(tupdesc);
/*
* generate attribute metadata needed later to produce tuples from raw
diff --git a/src/test/regress/regress.c b/src/test/regress/regress.c
index 2977045cc7..4d5e3e0918 100644
--- a/src/test/regress/regress.c
+++ b/src/test/regress/regress.c
@@ -1133,7 +1133,6 @@ test_enc_conversion(PG_FUNCTION_ARGS)
/* Build a tuple descriptor for our result type */
if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE)
elog(ERROR, "return type must be a row type");
- tupdesc = BlessTupleDesc(tupdesc);
srclen = VARSIZE_ANY_EXHDR(string);
src = VARDATA_ANY(string);
--
2.34.1