From aaba280fbfb28a87b24145aad7c1761408720cfa Mon Sep 17 00:00:00 2001
From: Michael Paquier <michael@paquier.xyz>
Date: Wed, 13 Aug 2025 19:55:39 +0900
Subject: [PATCH v5 08/15] Switch pg_column_toast_chunk_id() return value from
 oid to oid8

This is required for a follow-up patch that will add support for 8-byte
TOAST values, with this function being changed so as it is able to
support the largest TOAST value type available.

XXX: Bump catalog version.
---
 src/include/catalog/pg_proc.dat              | 2 +-
 src/backend/utils/adt/varlena.c              | 2 +-
 src/test/regress/expected/misc_functions.out | 2 +-
 src/test/regress/sql/misc_functions.sql      | 2 +-
 doc/src/sgml/func/func-admin.sgml            | 2 +-
 5 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/include/catalog/pg_proc.dat b/src/include/catalog/pg_proc.dat
index b78508e83b9b..49b830de2099 100644
--- a/src/include/catalog/pg_proc.dat
+++ b/src/include/catalog/pg_proc.dat
@@ -7744,7 +7744,7 @@
   proargtypes => 'any', prosrc => 'pg_column_compression' },
 { oid => '6316', descr => 'chunk ID of on-disk TOASTed value',
   proname => 'pg_column_toast_chunk_id', provolatile => 's',
-  prorettype => 'oid', proargtypes => 'any',
+  prorettype => 'oid8', proargtypes => 'any',
   prosrc => 'pg_column_toast_chunk_id' },
 { oid => '2322',
   descr => 'total disk space usage for the specified tablespace',
diff --git a/src/backend/utils/adt/varlena.c b/src/backend/utils/adt/varlena.c
index 78b3e65b2396..a176a4fab0e5 100644
--- a/src/backend/utils/adt/varlena.c
+++ b/src/backend/utils/adt/varlena.c
@@ -4241,7 +4241,7 @@ pg_column_toast_chunk_id(PG_FUNCTION_ARGS)
 
 	toast_valueid = toast_external_info_get_valueid(attr);
 
-	PG_RETURN_OID(toast_valueid);
+	PG_RETURN_OID8(toast_valueid);
 }
 
 /*
diff --git a/src/test/regress/expected/misc_functions.out b/src/test/regress/expected/misc_functions.out
index c3b2b9d86034..9fa9e3466761 100644
--- a/src/test/regress/expected/misc_functions.out
+++ b/src/test/regress/expected/misc_functions.out
@@ -881,7 +881,7 @@ SELECT t.relname AS toastrel FROM pg_class c
   WHERE c.relname = 'test_chunk_id'
 \gset
 SELECT pg_column_toast_chunk_id(a) IS NULL,
-  pg_column_toast_chunk_id(b) IN (SELECT chunk_id FROM pg_toast.:toastrel)
+  pg_column_toast_chunk_id(b) IN (SELECT chunk_id::oid8 FROM pg_toast.:toastrel)
   FROM test_chunk_id;
  ?column? | ?column? 
 ----------+----------
diff --git a/src/test/regress/sql/misc_functions.sql b/src/test/regress/sql/misc_functions.sql
index 23792c4132a1..5fb79f315e37 100644
--- a/src/test/regress/sql/misc_functions.sql
+++ b/src/test/regress/sql/misc_functions.sql
@@ -395,7 +395,7 @@ SELECT t.relname AS toastrel FROM pg_class c
   WHERE c.relname = 'test_chunk_id'
 \gset
 SELECT pg_column_toast_chunk_id(a) IS NULL,
-  pg_column_toast_chunk_id(b) IN (SELECT chunk_id FROM pg_toast.:toastrel)
+  pg_column_toast_chunk_id(b) IN (SELECT chunk_id::oid8 FROM pg_toast.:toastrel)
   FROM test_chunk_id;
 DROP TABLE test_chunk_id;
 DROP FUNCTION explain_mask_costs(text, bool, bool, bool, bool);
diff --git a/doc/src/sgml/func/func-admin.sgml b/doc/src/sgml/func/func-admin.sgml
index 446fdfe56f4f..160a48f05ee3 100644
--- a/doc/src/sgml/func/func-admin.sgml
+++ b/doc/src/sgml/func/func-admin.sgml
@@ -1571,7 +1571,7 @@ postgres=# SELECT '0/0'::pg_lsn + pd.segment_number * ps.setting::int + :offset
          <primary>pg_column_toast_chunk_id</primary>
         </indexterm>
         <function>pg_column_toast_chunk_id</function> ( <type>"any"</type> )
-        <returnvalue>oid</returnvalue>
+        <returnvalue>oid8</returnvalue>
        </para>
        <para>
         Shows the <structfield>chunk_id</structfield> of an on-disk
-- 
2.50.0

