Peter <pmc@xxxxxxxxxxxxxxxxxxxxxxx> writes: > "rows=1" in the "Hash Anti Join" line is WRONG. It should be > 3000000. Or at least some thousands. FWIW, this behaves better in v14 and up. In older versions there's an ambiguity about what relpages=reltuples=0 means; it's the state when ANALYZE has never yet examined the table contents, but it's also the state when we have found the table to be empty. Because of the former case, older planner versions don't like to believe that a table is empty even if reltuples says so. regards, tom lane