]> granicus.if.org Git - postgresql/commitdiff
Clarify old comment about qual_is_pushdown_safe's handling of subplans.
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 29 Nov 2017 04:32:17 +0000 (23:32 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 29 Nov 2017 04:32:17 +0000 (23:32 -0500)
This comment glossed over the difference between initplans and subplans,
but they are indeed different for our purposes here.

src/backend/optimizer/path/allpaths.c

index 906d08ab373808749d2173bfcfa2fc8f0d8d557a..44f6b0344208a9509aab0b09a3bc2fd0cd3de73f 100644 (file)
@@ -2840,9 +2840,11 @@ targetIsInAllPartitionLists(TargetEntry *tle, Query *query)
  *
  * Conditions checked here:
  *
- * 1. The qual must not contain any subselects (mainly because I'm not sure
- * it will work correctly: sublinks will already have been transformed into
- * subplans in the qual, but not in the subquery).
+ * 1. The qual must not contain any SubPlans (mainly because I'm not sure
+ * it will work correctly: SubLinks will already have been transformed into
+ * SubPlans in the qual, but not in the subquery).  Note that SubLinks that
+ * transform to initplans are safe, and will be accepted here because what
+ * we'll see in the qual is just a Param referencing the initplan output.
  *
  * 2. If unsafeVolatile is set, the qual must not contain any volatile
  * functions.