From 3f323eba89fb1ea2220cfe48ea7d9529fffe5cb6 Mon Sep 17 00:00:00 2001 From: Michael Paquier Date: Tue, 12 Nov 2024 17:28:03 +0900 Subject: [PATCH] pg_freespacemap: Use SQL-standard function bodies 72a5b1fc8804 was the piece missing for the conversion of this module. pg_freespace is bumped to 1.3, with its function pg_freespace(regclass) converted to this new style. There are other modules in the tree that need a similar treatment; these will be handled later. Author: Tom Lane Reviewed-by: Ronan Dunklau Discussion: https://postgr.es/m/3395418.1618352794@sss.pgh.pa.us --- contrib/pg_freespacemap/Makefile | 4 +++- contrib/pg_freespacemap/meson.build | 1 + contrib/pg_freespacemap/pg_freespacemap--1.2--1.3.sql | 13 +++++++++++++ contrib/pg_freespacemap/pg_freespacemap.control | 2 +- 4 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 contrib/pg_freespacemap/pg_freespacemap--1.2--1.3.sql diff --git a/contrib/pg_freespacemap/Makefile b/contrib/pg_freespacemap/Makefile index b48e4b255b..a986ae73d6 100644 --- a/contrib/pg_freespacemap/Makefile +++ b/contrib/pg_freespacemap/Makefile @@ -6,7 +6,9 @@ OBJS = \ pg_freespacemap.o EXTENSION = pg_freespacemap -DATA = pg_freespacemap--1.1.sql pg_freespacemap--1.1--1.2.sql \ +DATA = pg_freespacemap--1.1.sql \ + pg_freespacemap--1.2--1.3.sql \ + pg_freespacemap--1.1--1.2.sql \ pg_freespacemap--1.0--1.1.sql PGFILEDESC = "pg_freespacemap - monitoring of free space map" diff --git a/contrib/pg_freespacemap/meson.build b/contrib/pg_freespacemap/meson.build index af5d2b8c27..42ff1e74cc 100644 --- a/contrib/pg_freespacemap/meson.build +++ b/contrib/pg_freespacemap/meson.build @@ -20,6 +20,7 @@ install_data( 'pg_freespacemap--1.0--1.1.sql', 'pg_freespacemap--1.1--1.2.sql', 'pg_freespacemap--1.1.sql', + 'pg_freespacemap--1.2--1.3.sql', 'pg_freespacemap.control', kwargs: contrib_data_args, ) diff --git a/contrib/pg_freespacemap/pg_freespacemap--1.2--1.3.sql b/contrib/pg_freespacemap/pg_freespacemap--1.2--1.3.sql new file mode 100644 index 0000000000..7f92c9e92e --- /dev/null +++ b/contrib/pg_freespacemap/pg_freespacemap--1.2--1.3.sql @@ -0,0 +1,13 @@ +/* contrib/pg_freespacemap/pg_freespacemap--1.2--1.3.sql */ + +-- complain if script is sourced in psql, rather than via ALTER EXTENSION +\echo Use "ALTER EXTENSION pg_freespacemap UPDATE TO '1.3'" to load this file. \quit + +CREATE OR REPLACE FUNCTION + pg_freespace(rel regclass, blkno OUT bigint, avail OUT int2) +RETURNS SETOF RECORD +LANGUAGE SQL PARALLEL SAFE +BEGIN ATOMIC + SELECT blkno, pg_freespace($1, blkno) AS avail + FROM generate_series(0, pg_relation_size($1) / current_setting('block_size')::bigint - 1) AS blkno; +END; diff --git a/contrib/pg_freespacemap/pg_freespacemap.control b/contrib/pg_freespacemap/pg_freespacemap.control index ac8fc5050a..1992320691 100644 --- a/contrib/pg_freespacemap/pg_freespacemap.control +++ b/contrib/pg_freespacemap/pg_freespacemap.control @@ -1,5 +1,5 @@ # pg_freespacemap extension comment = 'examine the free space map (FSM)' -default_version = '1.2' +default_version = '1.3' module_pathname = '$libdir/pg_freespacemap' relocatable = true -- 2.11.4.GIT