From 96139cfbbc1581d6f17b601b37ce9dda88d36322 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Fri, 17 Oct 2014 22:33:14 -0400 Subject: [PATCH] Avoid core dump in _outPathInfo() for Path without a parent RelOptInfo. Nearly all Paths have parents, but a ResultPath representing an empty FROM clause does not. Avoid a core dump in such cases. I believe this is only a hazard for debugging usage, not for production, else we'd have heard about it before. Nonetheless, back-patch to 9.1 where the troublesome code was introduced. Noted while poking at bug #11703. --- src/backend/nodes/outfuncs.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c index cd6c275c639..01b2d6d2d4a 100644 --- a/src/backend/nodes/outfuncs.c +++ b/src/backend/nodes/outfuncs.c @@ -1466,7 +1466,10 @@ _outPathInfo(StringInfo str, Path *node) { WRITE_ENUM_FIELD(pathtype, NodeTag); appendStringInfo(str, " :parent_relids "); - _outBitmapset(str, node->parent->relids); + if (node->parent) + _outBitmapset(str, node->parent->relids); + else + _outBitmapset(str, NULL); WRITE_FLOAT_FIELD(startup_cost, "%.2f"); WRITE_FLOAT_FIELD(total_cost, "%.2f"); WRITE_NODE_FIELD(pathkeys);