Re: BUG #18344: Pruning tables partitioned by bool range fails with invalid strategy
David Rowley <dgrowleyml@gmail.com>
From: David Rowley <dgrowleyml@gmail.com>
To: Alexander Lakhin <exclusion@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Amit Langote <amitlan@postgresql.org>, Alvaro Herrera <alvherre@alvh.no-ip.org>, pgsql-bugs@lists.postgresql.org
Date: 2024-02-20T03:50:25Z
Lists: pgsql-bugs
Attachments
- minor_partpruning_fixes.patch (text/plain) patch
On Tue, 20 Feb 2024 at 16:00, Alexander Lakhin <exclusion@gmail.com> wrote: > Beside that, I'm a bit confused by the opstrategy description for > get_matching_range_bounds(). > Above that function we have: > * 'opstrategy' if non-zero must be a btree strategy number. > > But as we could see, zero opstrategy is not valid for the function (so > "if non-zero" is meaningless here?), unlike opstrategy for > get_matching_list_bounds(), which has the same description, but the latter > function contains: > /* Special case handling of values coming from a <> operator clause. */ > if (opstrategy == InvalidStrategy) Yeah, that seems worth fixing in master as, I agree, the comment is wrong. Possibly, we considered supporting <> for RANGE partitioning at some point, I don't recall. I was also working on a fix for what I mentioned in [1], which, I think, is master-only material. I'd say we can fix the comment as part of that. The patch for both is attached. David [1] https://postgr.es/m/CAApHDvqriy8mPOFJ_Bd66YGXJ4+XULpv-4YdB+ePdCQFztyisA@mail.gmail.com
Commits
-
Minor corrections for partition pruning
- d2ca9a50b5b9 17.0 landed
-
Fix incorrect pruning of NULL partition for boolean IS NOT clauses
- 3ffcd24c29c6 12.19 landed
- 3850fcca69b5 13.15 landed
- f9c8f7ccd6e3 14.12 landed
- 1b3495e29db6 15.7 landed
- fb95cc72bfe7 16.3 landed
- 4c2369ac5d0a 17.0 landed