• Tom Lane's avatar
    Refactor pull_var_clause's API to make it less tedious to extend. · 364a9f47
    Tom Lane authored
    In commit 1d97c19a and later c1d9579d, we extended
    pull_var_clause's API by adding enum-type arguments.  That's sort of a pain
    to maintain, though, because it means every time we add a new behavior we
    must touch every last one of the call sites, even if there's a reasonable
    default behavior that most of them could use.  Let's switch over to using a
    bitmask of flags, instead; that seems more maintainable and might save a
    nanosecond or two as well.  This commit changes no behavior in itself,
    though I'm going to follow it up with one that does add a new behavior.
    
    In passing, remove flatten_tlist(), which has not been used since 9.1
    and would otherwise need the same API changes.
    
    Removing these enums means that optimizer/tlist.h no longer needs to
    depend on optimizer/var.h.  Changing that caused a number of C files to
    need addition of #include "optimizer/var.h" (probably we can thank old
    runs of pgrminclude for that); but on balance it seems like a good change
    anyway.
    364a9f47
prepjointree.c 97.2 KB