Donald Dong <xdong(at)csumb(dot)edu> writes:
> I created some empty tables and run ` EXPLAIN ANALYZE` on `SELECT * `. I found
> the results have different row numbers, but the tables are all empty.
This isn't a terribly interesting case, since you've neither loaded
any data nor vacuumed/analyzed the table, but ...
> I found this behavior unexpected. I'm still trying to find out how/where the planner
> determines the plan_rows.
... estimate_rel_size() in plancat.c is where to look to find out
about the planner's default estimates when it's lacking hard data.
regards, tom lane