]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Avoid core dump in _outPathInfo() for Path without a parent RelOptInfo.
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 18 Oct 2014 02:33:14 +0000 (22:33 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 18 Oct 2014 02:33:14 +0000 (22:33 -0400)
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

index cd6c275c639671f904eb45650678c51fc9cd1ddd..01b2d6d2d4af2abe3ca1335ff2f92ffff981a309 100644 (file)
@@ -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);