On 2019-Feb-02, Tom Lane wrote: > In any case I think it makes things simpler and clearer, which is > worth a good deal.
Looking at the patch, I agree -- this is clearer than what was there before. > Another idea that I looked into is to not create RestrictInfos for > derived indexqual clauses, with the hope that that would further > reduce the added overhead for the commuted-clause case. However > that crashed and burned when I found out that the extended-stats > machinery punts when given a bare clause rather than a RestrictInfo. > It could possibly be fixed to not do that, but it looks like the > consequences would be extra lookups that'd probably cost more than > we saved by omitting the RestrictInfo. Also, having RestrictInfos > means that we can cache selectivity estimates across multiple > calls. I'm not entirely sure how much that matters in this > context, but it's probably not negligible. Is it reasonable to give ext-stats the option to receive either a "plain" clause or a RestrictInfo, and if the former have it construct the RestrictInfo and return it? It seems a pity to waste effort to cater for ext-stats, only to be used in the rare case where any ext-stats actually exist ... most of the time, it'd be wasted effort. -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services