]> granicus.if.org Git - postgresql/commitdiff
Switch pg_promote to be parallel-safe
authorMichael Paquier <michael@paquier.xyz>
Tue, 6 Nov 2018 05:11:21 +0000 (14:11 +0900)
committerMichael Paquier <michael@paquier.xyz>
Tue, 6 Nov 2018 05:11:21 +0000 (14:11 +0900)
pg_promote uses nothing relying on a global state, so it is fine to mark
it as parallel-safe, conclusion based on a detailed analysis from Robert
Haas.  This also fixes an inconsistency where pg_proc.dat missed to mark
the function with its previous value for proparallel, update which does
not matter now as the default is used.

Based on a discussion between multiple folks: Laurenz Albe, Robert Haas,
Amit Kapila, Tom Lane and myself.

Discussion: https://postgr.es/m/20181029082530.GL14242@paquier.xyz

src/backend/catalog/system_views.sql
src/include/catalog/catversion.h

index 53ddc593a8c4d170850f61b27ad54ba7ee36495d..715995dd883c694222f01f3989cf13fffba0870a 100644 (file)
@@ -1030,7 +1030,7 @@ CREATE OR REPLACE FUNCTION pg_stop_backup (
 CREATE OR REPLACE FUNCTION
   pg_promote(wait boolean DEFAULT true, wait_seconds integer DEFAULT 60)
   RETURNS boolean STRICT VOLATILE LANGUAGE INTERNAL AS 'pg_promote'
-  PARALLEL RESTRICTED;
+  PARALLEL SAFE;
 
 -- legacy definition for compatibility with 9.3
 CREATE OR REPLACE FUNCTION
index 14fc4ddda85d79329674e5370f7344d846476a2a..7d78cbe026a4c1a1abcc2f9b98bc5edc92547fca 100644 (file)
@@ -53,6 +53,6 @@
  */
 
 /*                                                     yyyymmddN */
-#define CATALOG_VERSION_NO     201811051
+#define CATALOG_VERSION_NO     201811061
 
 #endif