From 37d0c2cb1ab2d3da0cb9a6388450776fc31c16ee Mon Sep 17 00:00:00 2001 From: Robert Haas Date: Mon, 2 May 2016 10:42:34 -0400 Subject: [PATCH] Fix parallel safety markings for pg_start_backup. Commit 7117685461af50f50c03f43e6a622284c8d54694 made pg_start_backup parallel-restricted rather than parallel-safe, because it now relies on backend-private state that won't be synchronized with the parallel worker. However, it didn't update pg_proc.h. Separately, Andreas Karlsson observed that system_views.sql neglected to reiterate the parallel-safety markings whe redefining various functions, including this one; so add a PARALLEL RESTRICTED declaration there to match the new value in pg_proc.h. --- src/backend/catalog/system_views.sql | 3 ++- src/include/catalog/catversion.h | 2 +- src/include/catalog/pg_proc.h | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/backend/catalog/system_views.sql b/src/backend/catalog/system_views.sql index d3cc848ea5..2542648d73 100644 --- a/src/backend/catalog/system_views.sql +++ b/src/backend/catalog/system_views.sql @@ -922,7 +922,8 @@ COMMENT ON FUNCTION ts_debug(text) IS CREATE OR REPLACE FUNCTION pg_start_backup(label text, fast boolean DEFAULT false, exclusive boolean DEFAULT true) - RETURNS pg_lsn STRICT VOLATILE LANGUAGE internal AS 'pg_start_backup'; + RETURNS pg_lsn STRICT VOLATILE LANGUAGE internal AS 'pg_start_backup' + PARALLEL RESTRICTED; -- legacy definition for compatibility with 9.3 CREATE OR REPLACE FUNCTION diff --git a/src/include/catalog/catversion.h b/src/include/catalog/catversion.h index 5b7053da06..b65663084a 100644 --- a/src/include/catalog/catversion.h +++ b/src/include/catalog/catversion.h @@ -53,6 +53,6 @@ */ /* yyyymmddN */ -#define CATALOG_VERSION_NO 201604082 +#define CATALOG_VERSION_NO 201605021 #endif diff --git a/src/include/catalog/pg_proc.h b/src/include/catalog/pg_proc.h index bb539d43cf..021ba500ab 100644 --- a/src/include/catalog/pg_proc.h +++ b/src/include/catalog/pg_proc.h @@ -3107,7 +3107,7 @@ DATA(insert OID = 2171 ( pg_cancel_backend PGNSP PGUID 12 1 0 0 0 f f f f t f v DESCR("cancel a server process' current query"); DATA(insert OID = 2096 ( pg_terminate_backend PGNSP PGUID 12 1 0 0 0 f f f f t f v s 1 0 16 "23" _null_ _null_ _null_ _null_ _null_ pg_terminate_backend _null_ _null_ _null_ )); DESCR("terminate a server process"); -DATA(insert OID = 2172 ( pg_start_backup PGNSP PGUID 12 1 0 0 0 f f f f t f v s 3 0 3220 "25 16 16" _null_ _null_ _null_ _null_ _null_ pg_start_backup _null_ _null_ _null_ )); +DATA(insert OID = 2172 ( pg_start_backup PGNSP PGUID 12 1 0 0 0 f f f f t f v r 3 0 3220 "25 16 16" _null_ _null_ _null_ _null_ _null_ pg_start_backup _null_ _null_ _null_ )); DESCR("prepare for taking an online backup"); DATA(insert OID = 2173 ( pg_stop_backup PGNSP PGUID 12 1 0 0 0 f f f f t f v s 0 0 3220 "" _null_ _null_ _null_ _null_ _null_ pg_stop_backup _null_ _null_ _null_ )); DESCR("finish taking an online backup");