Re: [HACKERS] advanced partition matching algorithm for partition-wise join
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Etsuro Fujita <etsuro.fujita@gmail.com>
Cc: Kuntal Ghosh <kuntalghosh.2007@gmail.com>,
Ashutosh Bapat <ashutosh.bapat@2ndquadrant.com>,
Tomas Vondra <tomas.vondra@2ndquadrant.com>,
Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>,
Mark Dilger <mark.dilger@enterprisedb.com>,
amul sul <sulamul@gmail.com>, Robert Haas <robertmhaas@gmail.com>,
Thomas Munro <thomas.munro@gmail.com>,
Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>,
Rajkumar Raghuwanshi <rajkumar.raghuwanshi@enterprisedb.com>,
Etsuro Fujita <fujita.etsuro@lab.ntt.co.jp>,
Dmitry Dolgov <9erthalion6@gmail.com>,
Antonin Houska <ah@cybertec.at>,
PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2020-04-09T05:36:42Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Suppress unused-variable warning.
- 401418ca6a68 13.0 landed
-
Allow partitionwise joins in more cases.
- c8434d64ce03 13.0 landed
-
Avoid crash in partitionwise join planning under GEQO.
- 7ad6498fd5a6 12.0 cited
- d70c147fa217 11.3 cited
-
Disable support for partitionwise joins in problematic cases.
- 7cfdc77023ad 12.0 cited
-
Add plan_cache_mode setting
- f7cb2842bf47 12.0 cited
-
Add test for partitionwise join involving default partition.
- 4513d3a4be0b 12.0 cited
-
Revise API for partition_rbound_cmp/partition_rbound_datum_cmp.
- b0229235564f 11.0 landed
Etsuro Fujita <etsuro.fujita@gmail.com> writes: > Yeah, partition_bounds_merge() is currently called only from > try_partitionwise_join(), which guarantees that the strategies are the > same. The assertion cost would be cheap, but not zero, so I still > think it would be better to remove the assertion from > partition_bounds_merge(). FWIW, our general policy is that assertion costs should be ignored in any performance considerations. If you're concerned about performance you should be running a non-assert build, so it doesn't matter. (And certainly, there are lots of assertions in the backend that cost FAR more than this one.) The thing to evaluate an assertion on is how likely it is that it would catch a foreseeable sort of coding error in some future patch. Maybe this one carries its weight on that score or maybe it doesn't, but that's how to think about it. If there's only one caller and there's not likely to ever be more, then I tend to agree that you don't need the assertion. regards, tom lane