同步source code

日期: 12-26
    revision: ee5b054c
This commit is contained in:
dengxuyue
2020-12-28 22:19:21 +08:00
parent b7337ff802
commit 1567043064
6076 changed files with 2376818 additions and 741042 deletions

View File

@ -21,10 +21,12 @@
#include "postgres.h"
#include "knl/knl_variable.h"
#include "access/tableam.h"
#include "executor/execdebug.h"
#include "executor/nodeNestloop.h"
#include "executor/execStream.h"
#include "utils/memutils.h"
#include "executor/nodeHashjoin.h"
static void MaterialAll(PlanState* node)
{
@ -39,8 +41,13 @@ static void MaterialAll(PlanState* node)
/* early free the left tree of Material. */
ExecEarlyFree(outerPlanState(node));
/* early deinit consumer in left tree of Material. */
ExecEarlyDeinitConsumer(node);
/* early deinit consumer in left tree of Material.
* It should be noticed that we can not do early deinit
* within predpush.
*/
if (node != NULL && !CheckParamWalker(node)) {
ExecEarlyDeinitConsumer(node);
}
}
}
@ -170,7 +177,9 @@ TupleTableSlot* ExecNestLoop(NestLoopState* node)
Assert(IsA(nlp->paramval, Var));
Assert(nlp->paramval->varno == OUTER_VAR);
Assert(nlp->paramval->varattno > 0);
prm->value = slot_getattr(outer_tuple_slot, nlp->paramval->varattno, &(prm->isnull));
Assert(outer_tuple_slot != NULL && outer_tuple_slot->tts_tupleDescriptor != NULL);
/* Get the Table Accessor Method*/
prm->value = tableam_tslot_getattr(outer_tuple_slot, nlp->paramval->varattno, &(prm->isnull));
/*
* the following two parameters are called when there exist
* join-operation with column table (see ExecEvalVecParamExec).
@ -387,8 +396,10 @@ NestLoopState* ExecInitNestLoop(NestLoop* node, EState* estate, int eflags)
/*
* initialize tuple type and projection info
* the result in this case would hold only virtual data.
*/
ExecAssignResultTypeFromTL(&nlstate->js.ps);
ExecAssignResultTypeFromTL(&nlstate->js.ps, TAM_HEAP);
ExecAssignProjectionInfo(&nlstate->js.ps, NULL);
/*
@ -466,4 +477,4 @@ void ExecReScanNestLoop(NestLoopState* node)
node->js.ps.ps_TupFromTlist = false;
node->nl_NeedNewOuter = true;
node->nl_MatchedOuter = false;
}
}