diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2017-05-30 11:32:41 -0400 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2017-05-30 11:32:41 -0400 |
commit | 80f583ffe930b21d6e5c47be4342356e57851a9a (patch) | |
tree | 24aee8599f3177fba4bb50a6ec18a7cea3c77b77 /src/backend/nodes/readfuncs.c | |
parent | d5cb3bab564e0927ffac7c8729eacf181a12dd40 (diff) | |
download | postgresql-80f583ffe930b21d6e5c47be4342356e57851a9a.tar.gz postgresql-80f583ffe930b21d6e5c47be4342356e57851a9a.zip |
Fix omission of locations in outfuncs/readfuncs partitioning node support.
We could have limped along without this for v10, which was my intention
when I annotated the bug in commit 76a3df6e5. But consensus is that it's
better to fix it now and take the cost of a post-beta1 initdb (which is
needed because these node types are stored in pg_class.relpartbound).
Since we're forcing initdb anyway, take the opportunity to make the node
type identification strings match the node struct names, instead of being
randomly different from them.
Discussion: https://postgr.es/m/E1dFBEX-0004wt-8t@gemulon.postgresql.org
Diffstat (limited to 'src/backend/nodes/readfuncs.c')
-rw-r--r-- | src/backend/nodes/readfuncs.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/src/backend/nodes/readfuncs.c b/src/backend/nodes/readfuncs.c index b59ebd63ecb..81ddfc32712 100644 --- a/src/backend/nodes/readfuncs.c +++ b/src/backend/nodes/readfuncs.c @@ -2376,8 +2376,7 @@ _readPartitionBoundSpec(void) READ_NODE_FIELD(listdatums); READ_NODE_FIELD(lowerdatums); READ_NODE_FIELD(upperdatums); - /* XXX somebody forgot location field; too late to change for v10 */ - local_node->location = -1; + READ_LOCATION_FIELD(location); READ_DONE(); } @@ -2392,8 +2391,7 @@ _readPartitionRangeDatum(void) READ_BOOL_FIELD(infinite); READ_NODE_FIELD(value); - /* XXX somebody forgot location field; too late to change for v10 */ - local_node->location = -1; + READ_LOCATION_FIELD(location); READ_DONE(); } @@ -2638,9 +2636,9 @@ parseNodeString(void) return_value = _readAlternativeSubPlan(); else if (MATCH("EXTENSIBLENODE", 14)) return_value = _readExtensibleNode(); - else if (MATCH("PARTITIONBOUND", 14)) + else if (MATCH("PARTITIONBOUNDSPEC", 18)) return_value = _readPartitionBoundSpec(); - else if (MATCH("PARTRANGEDATUM", 14)) + else if (MATCH("PARTITIONRANGEDATUM", 19)) return_value = _readPartitionRangeDatum(); else { |