From 801386af62eac84c13feec5a643c120cf0ce33bd Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Tue, 28 Nov 2017 23:32:17 -0500 Subject: [PATCH] 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. --- src/backend/optimizer/path/allpaths.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/backend/optimizer/path/allpaths.c b/src/backend/optimizer/path/allpaths.c index 906d08ab37..44f6b03442 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. -- 2.40.0