1
0
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:
David Rowley
2021-11-24 15:27:43 +13:00
parent 1050048a31
commit dad20ad470
9 changed files with 3 additions and 142 deletions

View File

@@ -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;
}

View File

@@ -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);
}