Thread: pgsql: Make some adjustments to reduce platform dependencies in plan

pgsql: Make some adjustments to reduce platform dependencies in plan

From
tgl@svr1.postgresql.org (Tom Lane)
Date:
Log Message:
-----------
Make some adjustments to reduce platform dependencies in plan selection.
In particular, there was a mathematical tie between the two possible
nestloop-with-materialized-inner-scan plans for a join (ie, we computed
the same cost with either input on the inside), resulting in a roundoff
error driven choice, if the relations were both small enough to fit in
sort_mem.  Add a small cost factor to ensure we prefer materializing the
smaller input.  This changes several regression test plans, but with any
luck we will now have more stability across platforms.

Modified Files:
--------------
    pgsql/src/backend/optimizer/path:
        costsize.c (r1.135 -> r1.136)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/path/costsize.c.diff?r1=1.135&r2=1.136)
    pgsql/src/backend/optimizer/util:
        plancat.c (r1.98 -> r1.99)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/util/plancat.c.diff?r1=1.98&r2=1.99)
    pgsql/src/test/regress/expected:
        geometry.out (r1.19 -> r1.20)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/geometry.out.diff?r1=1.19&r2=1.20)
        geometry_1.out (r1.4 -> r1.5)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/geometry_1.out.diff?r1=1.4&r2=1.5)
        geometry_2.out (r1.1 -> r1.2)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/geometry_2.out.diff?r1=1.1&r2=1.2)
        inherit.out (r1.17 -> r1.18)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/inherit.out.diff?r1=1.17&r2=1.18)
        join.out (r1.20 -> r1.21)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/join.out.diff?r1=1.20&r2=1.21)
    pgsql/src/test/regress/sql:
        inherit.sql (r1.7 -> r1.8)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/sql/inherit.sql.diff?r1=1.7&r2=1.8)
        join.sql (r1.13 -> r1.14)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/sql/join.sql.diff?r1=1.13&r2=1.14)