From 42d4257a069584e205cafcc175f9f6f8d673237c Mon Sep 17 00:00:00 2001 From: Robert Haas Date: Thu, 9 Jun 2016 17:18:16 -0400 Subject: [PATCH] Update pg_freespacemap extension for parallel query. All functions provided by this extension are PARALLEL SAFE. Andreas Karlsson --- contrib/pg_freespacemap/Makefile | 3 ++- contrib/pg_freespacemap/pg_freespacemap--1.0--1.1.sql | 7 +++++++ .../{pg_freespacemap--1.0.sql => pg_freespacemap--1.1.sql} | 6 +++--- contrib/pg_freespacemap/pg_freespacemap.control | 2 +- 4 files changed, 13 insertions(+), 5 deletions(-) create mode 100644 contrib/pg_freespacemap/pg_freespacemap--1.0--1.1.sql rename contrib/pg_freespacemap/{pg_freespacemap--1.0.sql => pg_freespacemap--1.1.sql} (87%) diff --git a/contrib/pg_freespacemap/Makefile b/contrib/pg_freespacemap/Makefile index 5760d9fe51..7bc0e9555d 100644 --- a/contrib/pg_freespacemap/Makefile +++ b/contrib/pg_freespacemap/Makefile @@ -4,7 +4,8 @@ MODULE_big = pg_freespacemap OBJS = pg_freespacemap.o $(WIN32RES) EXTENSION = pg_freespacemap -DATA = pg_freespacemap--1.0.sql pg_freespacemap--unpackaged--1.0.sql +DATA = pg_freespacemap--1.1.sql pg_freespacemap--1.0--1.1.sql \ + pg_freespacemap--unpackaged--1.0.sql PGFILEDESC = "pg_freespacemap - monitoring of free space map" ifdef USE_PGXS diff --git a/contrib/pg_freespacemap/pg_freespacemap--1.0--1.1.sql b/contrib/pg_freespacemap/pg_freespacemap--1.0--1.1.sql new file mode 100644 index 0000000000..52d6576df0 --- /dev/null +++ b/contrib/pg_freespacemap/pg_freespacemap--1.0--1.1.sql @@ -0,0 +1,7 @@ +/* contrib/pg_freespacemap/pg_freespacemap--1.0--1.1.sql */ + +-- complain if script is sourced in psql, rather than via ALTER EXTENSION +\echo Use "ALTER EXTENSION pg_freespacemap UPDATE TO '1.1'" to load this file. \quit + +ALTER FUNCTION pg_freespace(regclass, bigint) PARALLEL SAFE; +ALTER FUNCTION pg_freespace(regclass) PARALLEL SAFE; diff --git a/contrib/pg_freespacemap/pg_freespacemap--1.0.sql b/contrib/pg_freespacemap/pg_freespacemap--1.1.sql similarity index 87% rename from contrib/pg_freespacemap/pg_freespacemap--1.0.sql rename to contrib/pg_freespacemap/pg_freespacemap--1.1.sql index 2adb52a375..e1b8242268 100644 --- a/contrib/pg_freespacemap/pg_freespacemap--1.0.sql +++ b/contrib/pg_freespacemap/pg_freespacemap--1.1.sql @@ -1,4 +1,4 @@ -/* contrib/pg_freespacemap/pg_freespacemap--1.0.sql */ +/* contrib/pg_freespacemap/pg_freespacemap--1.1.sql */ -- complain if script is sourced in psql, rather than via CREATE EXTENSION \echo Use "CREATE EXTENSION pg_freespacemap" to load this file. \quit @@ -7,7 +7,7 @@ CREATE FUNCTION pg_freespace(regclass, bigint) RETURNS int2 AS 'MODULE_PATHNAME', 'pg_freespace' -LANGUAGE C STRICT; +LANGUAGE C STRICT PARALLEL SAFE; -- pg_freespace shows the recorded space avail at each block in a relation CREATE FUNCTION @@ -17,7 +17,7 @@ AS $$ SELECT blkno, pg_freespace($1, blkno) AS avail FROM generate_series(0, pg_relation_size($1) / current_setting('block_size')::bigint - 1) AS blkno; $$ -LANGUAGE SQL; +LANGUAGE SQL PARALLEL SAFE; -- Don't want these to be available to public. diff --git a/contrib/pg_freespacemap/pg_freespacemap.control b/contrib/pg_freespacemap/pg_freespacemap.control index 34b695ff75..764db30d18 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.0' +default_version = '1.1' module_pathname = '$libdir/pg_freespacemap' relocatable = true