diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2014-10-17 22:32:55 -0400 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2014-10-17 22:33:52 -0400 |
commit | 5ba062ee44c35b4dc49ccf869fe48f3c6f5f926f (patch) | |
tree | e7b75b1ebec0decf715764e2c9b0dfe22ff3edce /src | |
parent | 504c717599b20cdaf09e9d7b6ecd152cc7a3a71a (diff) | |
download | postgresql-5ba062ee44c35b4dc49ccf869fe48f3c6f5f926f.tar.gz postgresql-5ba062ee44c35b4dc49ccf869fe48f3c6f5f926f.zip |
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')
-rw-r--r-- | src/backend/nodes/outfuncs.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c index 56e486c8bc8..4bbfa629d69 100644 --- a/src/backend/nodes/outfuncs.c +++ b/src/backend/nodes/outfuncs.c @@ -1477,7 +1477,10 @@ _outPathInfo(StringInfo str, const Path *node) { WRITE_ENUM_FIELD(pathtype, NodeTag); appendStringInfoString(str, " :parent_relids "); - _outBitmapset(str, node->parent->relids); + if (node->parent) + _outBitmapset(str, node->parent->relids); + else + _outBitmapset(str, NULL); appendStringInfoString(str, " :required_outer "); if (node->param_info) _outBitmapset(str, node->param_info->ppi_req_outer); |