diff options
author | Bruce Momjian <bruce@momjian.us> | 1997-12-22 05:42:25 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 1997-12-22 05:42:25 +0000 |
commit | d404f1006bdc65e09a7c8e6230bc8e3d1008a297 (patch) | |
tree | f6491e4242a07b9d2df9b36d2bfd3ede713460e0 /src/backend/executor/nodeAgg.c | |
parent | 78a055a6593efb8e64ad2edac2c86b680c177ad2 (diff) | |
download | postgresql-d404f1006bdc65e09a7c8e6230bc8e3d1008a297.tar.gz postgresql-d404f1006bdc65e09a7c8e6230bc8e3d1008a297.zip |
Fix for select 1=1 or 2=2, select 1=1 and 2=2, and select sum(2+2).
Diffstat (limited to 'src/backend/executor/nodeAgg.c')
-rw-r--r-- | src/backend/executor/nodeAgg.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/backend/executor/nodeAgg.c b/src/backend/executor/nodeAgg.c index accc7b1fb7c..5b6b180cb96 100644 --- a/src/backend/executor/nodeAgg.c +++ b/src/backend/executor/nodeAgg.c @@ -534,6 +534,19 @@ ExecInitAgg(Agg *node, EState *estate, Plan *parent) outerPlan = outerPlan(node); ExecInitNode(outerPlan, estate, (Plan *) node); + /* + * Result runs in its own context, but make it use our aggregates + * fix for 'select sum(2+2)' + */ + if (nodeTag(outerPlan) == T_Result) + { + ((Result *)outerPlan)->resstate->cstate.cs_ProjInfo->pi_exprContext->ecxt_values = + econtext->ecxt_values; + ((Result *)outerPlan)->resstate->cstate.cs_ProjInfo->pi_exprContext->ecxt_nulls = + econtext->ecxt_nulls; + } + + /* ---------------- * initialize tuple type. * ---------------- |