On Thu, Apr 9, 2020 at 12:03 PM Etsuro Fujita <etsuro.fujita@gmail.com> wrote: > > On Thu, Apr 9, 2020 at 2:36 PM Tom Lane <tgl@sss.pgh.pa.us> wrote: > > 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. > > > 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. > > It seems unlikely that partition_bounds_merge() will be called from > more places in the foreseeable future, so I'd still vote for removing > the assertion.
When I wrote that function, I had UNION also in mind. A UNION across multiple partitioned relations will be partitioned if we can merge the partition bounds in a sensible manner. Of course the current structure of that function looks more purposed for join, but it's not difficult to convert it to be used for UNION as well. In that case those set of functions will have many more callers. So, I will vote to keep that assertion now that we have it there.
In that case, we really should add the PG_USED_FOR_ASSERTS_ONLY to make the compiler happy.
Attaching my patch again. It doesn't need PG_USED_FOR_ASSERTS_ONLY as well. Kuntal has confirmed that this fixes the warning for him.