Thread: pgsql: Fix overenthusiastic optimization of 'x IN (SELECT DISTINCT ...)'

pgsql: Fix overenthusiastic optimization of 'x IN (SELECT DISTINCT ...)'

From
tgl@svr1.postgresql.org (Tom Lane)
Date:
Log Message:
-----------
Fix overenthusiastic optimization of 'x IN (SELECT DISTINCT ...)' and related
cases: we can't just consider whether the subquery's output is unique on its
own terms, we have to check whether the set of output columns we are going to
use will be unique.  Per complaint from Luca Pireddu and test case from
Michael Fuhr.

Tags:
----
REL8_0_STABLE

Modified Files:
--------------
    pgsql/src/backend/optimizer/util:
        pathnode.c (r1.111 -> r1.111.4.1)

(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/util/pathnode.c.diff?r1=1.111&r2=1.111.4.1)
    pgsql/src/test/regress/expected:
        subselect.out (r1.10.4.2 -> r1.10.4.3)

(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/subselect.out.diff?r1=1.10.4.2&r2=1.10.4.3)
    pgsql/src/test/regress/sql:
        subselect.sql (r1.7 -> r1.7.4.1)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/sql/subselect.sql.diff?r1=1.7&r2=1.7.4.1)