1
0
mirror of https://github.com/postgres/postgres.git synced 2025-04-18 13:44:19 +03:00

pg_buffercache: Change page_num type to bigint

The page_num was defined as integer, which should be sufficient for the
near future (with 4K pages it's 8TB). But it's virtually free to return
bigint, and get a wider range. This was agreed on the thread, but I
forgot to tweak this in ba2a3c2302f1.

While at it, make the data types in CREATE VIEW a bit more consistent.

Discussion: https://postgr.es/m/CAKZiRmxh6KWo0aqRqvmcoaX2jUxZYb4kGp3N%3Dq1w%2BDiH-696Xw%40mail.gmail.co
This commit is contained in:
Tomas Vondra 2025-04-08 11:52:02 +02:00
parent b8a6078ca8
commit 91f1fe90c7
3 changed files with 5 additions and 5 deletions

View File

@ -12,7 +12,7 @@ LANGUAGE C PARALLEL SAFE;
-- Create a view for convenient access.
CREATE VIEW pg_buffercache_numa AS
SELECT P.* FROM pg_buffercache_numa_pages() AS P
(bufferid integer, os_page_num int4, numa_node int4);
(bufferid integer, os_page_num bigint, numa_node integer);
-- Don't want these to be available to public.
REVOKE ALL ON FUNCTION pg_buffercache_numa_pages() FROM PUBLIC;

View File

@ -72,7 +72,7 @@ typedef struct
typedef struct
{
uint32 bufferid;
int32 page_num;
int64 page_num;
int32 numa_node;
} BufferCacheNumaRec;
@ -414,7 +414,7 @@ pg_buffercache_numa_pages(PG_FUNCTION_ARGS)
TupleDescInitEntry(tupledesc, (AttrNumber) 1, "bufferid",
INT4OID, -1, 0);
TupleDescInitEntry(tupledesc, (AttrNumber) 2, "os_page_num",
INT4OID, -1, 0);
INT8OID, -1, 0);
TupleDescInitEntry(tupledesc, (AttrNumber) 3, "numa_node",
INT4OID, -1, 0);
@ -522,7 +522,7 @@ pg_buffercache_numa_pages(PG_FUNCTION_ARGS)
values[0] = Int32GetDatum(fctx->record[i].bufferid);
nulls[0] = false;
values[1] = Int32GetDatum(fctx->record[i].page_num);
values[1] = Int64GetDatum(fctx->record[i].page_num);
nulls[1] = false;
values[2] = Int32GetDatum(fctx->record[i].numa_node);

View File

@ -267,7 +267,7 @@
<row>
<entry role="catalog_table_entry"><para role="column_definition">
<structfield>os_page_num</structfield> <type>int</type>
<structfield>os_page_num</structfield> <type>bigint</type>
</para>
<para>
number of OS memory page for this buffer