• Tom Lane's avatar
    Restore foreign-key-aware estimation of join relation sizes. · 100340e2
    Tom Lane authored
    This patch provides a new implementation of the logic added by commit
    137805f8 and later removed by 77ba6108.  It differs from the original
    primarily in expending much less effort per joinrel in large queries,
    which it accomplishes by doing most of the matching work once per query not
    once per joinrel.  Hopefully, it's also less buggy and better commented.
    The never-documented enable_fkey_estimates GUC remains gone.
    
    There remains work to be done to make the selectivity estimates account
    for nulls in FK referencing columns; but that was true of the original
    patch as well.  We may be able to address this point later in beta.
    In the meantime, any error should be in the direction of overestimating
    rather than underestimating joinrel sizes, which seems like the direction
    we want to err in.
    
    Tomas Vondra and Tom Lane
    
    Discussion: <31041.1465069446@sss.pgh.pa.us>
    100340e2
relnode.c 41.7 KB