Re: ...WHERE TRUE" condition in union results in bad query pla - Mailing list pgsql-performance

From Tom Lane
Subject Re: ...WHERE TRUE" condition in union results in bad query pla
Date
Msg-id 1857.1330830209@sss.pgh.pa.us
Whole thread Raw
In response to ...WHERE TRUE" condition in union results in bad query pla  (Claus Stadler <cstadler@informatik.uni-leipzig.de>)
Responses Re: ...WHERE TRUE" condition in union results in bad query pla  (Robert Haas <robertmhaas@gmail.com>)
List pgsql-performance
Claus Stadler <cstadler@informatik.uni-leipzig.de> writes:
> Query optimizer glitch: "...WHERE TRUE" condition in union results in
> bad query plan ...

Yeah, this is because a nonempty WHERE clause defeats simplifying the
UNION ALL into a simple "append relation" (cf is_safe_append_member()).
The planner will eventually figure out that WHERE TRUE is a no-op,
but that doesn't happen till later (and there are good reasons to do
things in that order).

Sooner or later I'd like to relax the restriction that appendrel members
can't have extra WHERE clauses, but don't hold your breath waiting...

            regards, tom lane

pgsql-performance by date:

Previous
From: Claus Stadler
Date:
Subject: ...WHERE TRUE" condition in union results in bad query pla
Next
From: Rory Campbell-Lange
Date:
Subject: Advice sought : new database server