diff options
author | Tomas Vondra <tomas.vondra@postgresql.org> | 2025-04-08 11:52:02 +0200 |
---|---|---|
committer | Tomas Vondra <tomas.vondra@postgresql.org> | 2025-04-08 12:38:42 +0200 |
commit | 91f1fe90c7d42641201bd2c474bd86d703b5e830 (patch) | |
tree | cc9c4e0ab7a980120ab4e4af144ec7e5f186f816 | |
parent | b8a6078ca8f446a6271b26101de75ee48e288a3a (diff) | |
download | postgresql-91f1fe90c7d42641201bd2c474bd86d703b5e830.tar.gz postgresql-91f1fe90c7d42641201bd2c474bd86d703b5e830.zip |
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
-rw-r--r-- | contrib/pg_buffercache/pg_buffercache--1.5--1.6.sql | 2 | ||||
-rw-r--r-- | contrib/pg_buffercache/pg_buffercache_pages.c | 6 | ||||
-rw-r--r-- | doc/src/sgml/pgbuffercache.sgml | 2 |
3 files changed, 5 insertions, 5 deletions
diff --git a/contrib/pg_buffercache/pg_buffercache--1.5--1.6.sql b/contrib/pg_buffercache/pg_buffercache--1.5--1.6.sql index 85a23c65164..458f054a691 100644 --- a/contrib/pg_buffercache/pg_buffercache--1.5--1.6.sql +++ b/contrib/pg_buffercache/pg_buffercache--1.5--1.6.sql @@ -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; diff --git a/contrib/pg_buffercache/pg_buffercache_pages.c b/contrib/pg_buffercache/pg_buffercache_pages.c index 54c83601418..c9ceba604b1 100644 --- a/contrib/pg_buffercache/pg_buffercache_pages.c +++ b/contrib/pg_buffercache/pg_buffercache_pages.c @@ -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); diff --git a/doc/src/sgml/pgbuffercache.sgml b/doc/src/sgml/pgbuffercache.sgml index ef5732942f7..537d6014942 100644 --- a/doc/src/sgml/pgbuffercache.sgml +++ b/doc/src/sgml/pgbuffercache.sgml @@ -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 |