Thread: pgsql-server/src backend/optimizer/path/allpat ...

pgsql-server/src backend/optimizer/path/allpat ...

From
tgl@postgresql.org (Tom Lane)
Date:
CVSROOT:    /cvsroot
Module name:    pgsql-server
Changes by:    tgl@postgresql.org    03/03/21 20:49:38

Modified files:
    src/backend/optimizer/path: allpaths.c
    src/backend/optimizer/util: clauses.c
    src/backend/parser: parse_clause.c
    src/include/parser: parse_clause.h

Log message:
    Adjust subquery qual pushdown rules to be more forgiving: if a qual
    refers to a non-DISTINCT output column of a DISTINCT ON subquery, or
    if it refers to a function-returning-set, we cannot push it down.
    But the old implementation refused to push down *any* quals if the
    subquery had any such 'dangerous' outputs.  Now we just look at the
    output columns actually referenced by each qual expression.  More code
    than before, but probably no slower since we don't make unnecessary checks.