Re: Check each of base restriction clauses for constant-FALSE-or-NULL
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Richard Guo <guofenglinux@gmail.com>
Cc: David Rowley <dgrowleyml@gmail.com>,
PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2023-10-10T18:24:08Z
Lists: pgsql-hackers
I wrote: > Also, if you compare that test case to the one immediately following > it, it's downright weird that we are presently smarter about > optimizing the more complicated case. (I've not dug into exactly > why that is; maybe worth running it to ground?) The reason seems to be that joinrels.c's restriction_is_constant_false knows that it has to check all members of the restrictinfo list, not just one; and we get to that because some of the originally generated EC clauses are join clauses in the second case. So this logic in relation_excluded_by_constraints is just wrong --- premature optimization on my part, looks like. regards, tom lane
Commits
-
Fix missed optimization in relation_excluded_by_constraints().
- 5d8aa8bcedae 17.0 landed