Dominik Sander <depairet@xxxxxxxxx> writes: > I have an issue with a table partitioned by one boolean column. The > query planner only seems to skip the non matching table if expired > (the column I use for the partition) is true. Hm, interesting case. The reason it's behaving asymmetrically is the fix for this bug: http://archives.postgresql.org/pgsql-sql/2008-01/msg00084.php The planner forces expressions like "bool_var = true" into the simpler forms "bool_var" or "NOT bool_var" so as to recognize that these forms are equivalent. However, that means that your "expired = false" case looks like the case that was removed as incorrect, ie + * Unfortunately we *cannot* use + * NOT A R=> B if: B => A + * because this type of reasoning fails to prove that B doesn't yield NULL. It strikes me though that we could make the more limited deduction that NOT A refutes A itself. That would fix this case, and I think it would cover all the cases that we would have recognized if we'd left the clauses in boolean-comparison form. I'll see about fixing this for the next updates. regards, tom lane -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general