From 286a3a68dcafa15f28a169daac38659816911940 Mon Sep 17 00:00:00 2001
From: Robert Haas <rhaas@postgresql.org>
Date: Thu, 1 Oct 2015 09:15:36 -0400
Subject: [PATCH] Fix readfuncs/outfuncs problems in last night's Gather patch.

KaiGai Kohei, with one correction by me.
---
 src/backend/nodes/outfuncs.c  |  4 ++--
 src/backend/nodes/readfuncs.c | 18 ++++++++++++++++++
 2 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c
index 4645ecb804f..61dbc75036c 100644
--- a/src/backend/nodes/outfuncs.c
+++ b/src/backend/nodes/outfuncs.c
@@ -439,8 +439,8 @@ _outGather(StringInfo str, const Gather *node)
 
 	_outPlanInfo(str, (const Plan *) node);
 
-	WRITE_UINT_FIELD(num_workers);
-	WRITE_UINT_FIELD(single_copy);
+	WRITE_INT_FIELD(num_workers);
+	WRITE_BOOL_FIELD(single_copy);
 }
 
 static void
diff --git a/src/backend/nodes/readfuncs.c b/src/backend/nodes/readfuncs.c
index 72368ab981d..2777cbb9c08 100644
--- a/src/backend/nodes/readfuncs.c
+++ b/src/backend/nodes/readfuncs.c
@@ -1998,6 +1998,22 @@ _readUnique(void)
 	READ_DONE();
 }
 
+/*
+ * _readGather
+ */
+static Gather *
+_readGather(void)
+{
+	READ_LOCALS(Gather);
+
+	ReadCommonPlan(&local_node->plan);
+
+	READ_INT_FIELD(num_workers);
+	READ_BOOL_FIELD(single_copy);
+
+	READ_DONE();
+}
+
 /*
  * _readHash
  */
@@ -2365,6 +2381,8 @@ parseNodeString(void)
 		return_value = _readWindowAgg();
 	else if (MATCH("UNIQUE", 6))
 		return_value = _readUnique();
+	else if (MATCH("GATHER", 6))
+		return_value = _readGather();
 	else if (MATCH("HASH", 4))
 		return_value = _readHash();
 	else if (MATCH("SETOP", 5))
-- 
GitLab