In planner.c, avoid assuming that all PathTargets have sortgrouprefs.
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 13 Jun 2016 16:59:25 +0000 (12:59 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 13 Jun 2016 16:59:25 +0000 (12:59 -0400)
commit89d53515e53ea080029894939118365b647489b3
tree6d8839cba676d636270e49ad5c7ca4a9bc42b432
parentcd9b4f24ce5f24de5112392d5a9db3a8d4208115
In planner.c, avoid assuming that all PathTargets have sortgrouprefs.

The struct definition for PathTarget specifies that a NULL sortgrouprefs
pointer means no sortgroupref labels.  While it's likely that there
should always be at least one labeled column in the places that were
unconditionally fetching through the pointer, it seems wiser to adhere to
the data structure specification and test first.  Add a macro to make this
convenient.  Per experimentation with running the regression tests with a
very small parallelization threshold --- the crash I observed may well
represent a bug elsewhere, but still this coding was not very robust.

Report: <20756.1465834072@sss.pgh.pa.us>
src/backend/optimizer/plan/planner.c
src/include/nodes/relation.h