Manuel Weitzman <manuelweitzman@xxxxxxxxx> writes: >> On 20-06-2021, at 17:06, Tom Lane <tgl@xxxxxxxxxxxxx> wrote: >> So ... the reason why there's not caching of get_actual_variable_range >> results already is that I'd supposed it wouldn't be necessary given >> the caching of selectivity estimates that happens at the RestrictInfo >> level. I don't have any objection in principle to adding another >> caching layer if that one's not working well enough, but I think it'd >> be wise to first understand why it's needed. > For what I could make out from the code, the caching done at the > RestrictInfo level is already saving a lot of work, but there's a > different RestrictInfo instance for each alternative path created by > make_one_rel(). That seems a bit broken; a given WHERE clause should produce only one RestrictInfo. Can you provide a more concrete example? regards, tom lane