From: Tom Lane Date: Wed, 29 Nov 2017 04:32:17 +0000 (-0500) Subject: Clarify old comment about qual_is_pushdown_safe's handling of subplans. X-Git-Tag: REL_11_BETA1~1145 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=801386af62eac84c13feec5a643c120cf0ce33bd;p=thirdparty%2Fpostgresql.git Clarify old comment about qual_is_pushdown_safe's handling of subplans. This comment glossed over the difference between initplans and subplans, but they are indeed different for our purposes here. --- diff --git a/src/backend/optimizer/path/allpaths.c b/src/backend/optimizer/path/allpaths.c index 906d08ab373..44f6b034420 100644 --- a/src/backend/optimizer/path/allpaths.c +++ b/src/backend/optimizer/path/allpaths.c @@ -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.