summaryrefslogtreecommitdiff
path: root/src/backend/nodes/outfuncs.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2014-10-17 22:33:10 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2014-10-17 22:33:10 -0400
commit6de1b53458a7d74276b087d12d34798bc5f3226b (patch)
treeb80c2dd9d1e83d8cd9229bffc8bf90f5c015aeac /src/backend/nodes/outfuncs.c
parent787e20bd4a33fd076cad1fd3ec58c644a14d8390 (diff)
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.
Diffstat (limited to 'src/backend/nodes/outfuncs.c')
-rw-r--r--src/backend/nodes/outfuncs.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c
index a08d9bbc0c9..12c8fed1ab9 100644
--- a/src/backend/nodes/outfuncs.c
+++ b/src/backend/nodes/outfuncs.c
@@ -1470,7 +1470,10 @@ _outPathInfo(StringInfo str, const 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);
appendStringInfo(str, " :required_outer ");
if (node->param_info)
_outBitmapset(str, node->param_info->ppi_req_outer);