mirror of
https://github.com/postgres/postgres.git
synced 2025-08-27 07:42:10 +03:00
Revert "Flush Memoize cache when non-key parameters change"
This reverts commit 1050048a31
.
This commit is contained in:
@@ -280,7 +280,7 @@ static Material *make_material(Plan *lefttree);
|
||||
static Memoize *make_memoize(Plan *lefttree, Oid *hashoperators,
|
||||
Oid *collations, List *param_exprs,
|
||||
bool singlerow, bool binary_mode,
|
||||
uint32 est_entries, Bitmapset *keyparamids);
|
||||
uint32 est_entries);
|
||||
static WindowAgg *make_windowagg(List *tlist, Index winref,
|
||||
int partNumCols, AttrNumber *partColIdx, Oid *partOperators, Oid *partCollations,
|
||||
int ordNumCols, AttrNumber *ordColIdx, Oid *ordOperators, Oid *ordCollations,
|
||||
@@ -1586,7 +1586,6 @@ static Memoize *
|
||||
create_memoize_plan(PlannerInfo *root, MemoizePath *best_path, int flags)
|
||||
{
|
||||
Memoize *plan;
|
||||
Bitmapset *keyparamids;
|
||||
Plan *subplan;
|
||||
Oid *operators;
|
||||
Oid *collations;
|
||||
@@ -1618,11 +1617,9 @@ create_memoize_plan(PlannerInfo *root, MemoizePath *best_path, int flags)
|
||||
i++;
|
||||
}
|
||||
|
||||
keyparamids = pull_paramids((Expr *) param_exprs);
|
||||
|
||||
plan = make_memoize(subplan, operators, collations, param_exprs,
|
||||
best_path->singlerow, best_path->binary_mode,
|
||||
best_path->est_entries, keyparamids);
|
||||
best_path->est_entries);
|
||||
|
||||
copy_generic_path_info(&plan->plan, (Path *) best_path);
|
||||
|
||||
@@ -6423,7 +6420,7 @@ materialize_finished_plan(Plan *subplan)
|
||||
static Memoize *
|
||||
make_memoize(Plan *lefttree, Oid *hashoperators, Oid *collations,
|
||||
List *param_exprs, bool singlerow, bool binary_mode,
|
||||
uint32 est_entries, Bitmapset *keyparamids)
|
||||
uint32 est_entries)
|
||||
{
|
||||
Memoize *node = makeNode(Memoize);
|
||||
Plan *plan = &node->plan;
|
||||
@@ -6440,7 +6437,6 @@ make_memoize(Plan *lefttree, Oid *hashoperators, Oid *collations,
|
||||
node->singlerow = singlerow;
|
||||
node->binary_mode = binary_mode;
|
||||
node->est_entries = est_entries;
|
||||
node->keyparamids = keyparamids;
|
||||
|
||||
return node;
|
||||
}
|
||||
|
@@ -152,7 +152,6 @@ static Query *substitute_actual_srf_parameters(Query *expr,
|
||||
int nargs, List *args);
|
||||
static Node *substitute_actual_srf_parameters_mutator(Node *node,
|
||||
substitute_actual_srf_parameters_context *context);
|
||||
static bool pull_paramids_walker(Node *node, Bitmapset **context);
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
@@ -5215,33 +5214,3 @@ substitute_actual_srf_parameters_mutator(Node *node,
|
||||
substitute_actual_srf_parameters_mutator,
|
||||
(void *) context);
|
||||
}
|
||||
|
||||
/*
|
||||
* pull_paramids
|
||||
* Returns a Bitmapset containing the paramids of all Params in 'expr'.
|
||||
*/
|
||||
Bitmapset *
|
||||
pull_paramids(Expr *expr)
|
||||
{
|
||||
Bitmapset *result = NULL;
|
||||
|
||||
(void) pull_paramids_walker((Node *) expr, &result);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
static bool
|
||||
pull_paramids_walker(Node *node, Bitmapset **context)
|
||||
{
|
||||
if (node == NULL)
|
||||
return false;
|
||||
if (IsA(node, Param))
|
||||
{
|
||||
Param *param = (Param *)node;
|
||||
|
||||
*context = bms_add_member(*context, param->paramid);
|
||||
return false;
|
||||
}
|
||||
return expression_tree_walker(node, pull_paramids_walker,
|
||||
(void *) context);
|
||||
}
|
||||
|
Reference in New Issue
Block a user