• Tomas Vondra's avatar
    Ignore extended statistics for inheritance trees · 2cc007fd
    Tomas Vondra authored
    Since commit 859b3003de we only build extended statistics for individual
    relations, ignoring the child relations. This resolved the issue with
    updating catalog tuple twice, but we still tried to use the statistics
    when calculating estimates for the whole inheritance tree. When the
    relations contain very distinct data, it may produce bogus estimates.
    
    This is roughly the same issue 427c6b5b addressed ~15 years ago, and we
    fix it the same way - by ignoring extended statistics when calculating
    estimates for the inheritance tree as a whole. We still consider
    extended statistics when calculating estimates for individual child
    relations, of course.
    
    This may result in plan changes due to different estimates, but if the
    old statistics were not describing the inheritance tree particularly
    well it's quite likely the new plans is actually better.
    
    Report and patch by Justin Pryzby, minor fixes and cleanup by me.
    Backpatch all the way back to PostgreSQL 10, where extended statistics
    were introduced (same as 859b3003de).
    
    Author: Justin Pryzby
    Reported-by: Justin Pryzby
    Backpatch-through: 10
    Discussion: https://postgr.es/m/20210923212624.GI831%40telsasoft.com
    2cc007fd
selfuncs.c 239 KB