Re: inconsistent results querying table partitioned by date

Поиск
Список
Период
Сортировка
От Amit Langote
Тема Re: inconsistent results querying table partitioned by date
Дата
Msg-id cae834e6-8059-2d7f-ae33-c6666d7575d7@lab.ntt.co.jp
обсуждение исходный текст
Ответ на Re: inconsistent results querying table partitioned by date  (David Rowley <david.rowley@2ndquadrant.com>)
Список pgsql-bugs
You are right that tests I'd added in 0001 no longer test for the bugs it
fixes, that is, after applying your patch, because we no longer end up in
a state during *plan-time* pruning where those bugs manifest themselves.
Thanks for pointing that out.  I have rewritten the tests.

Also, I'm attaching the other patch as *0002* this time to signal that it
is to be applied after applying yours, that is, if not together.

On 2019/05/15 11:47, David Rowley wrote:
> On Wed, 15 May 2019 at 14:20, David Rowley <david.rowley@2ndquadrant.com> wrote:
>> Additionally, I'm wondering if we should also apply the attached as
>> part of my dont_prune_with_nonimmutable_opfuncs_during_planning_v2.patch
>> patch. We should never get a non-Const in the pruning steps for
>> planning, so there's likely no point in doing a run-time check to
>> ensure we have a planstate.  This code can execute quite often during
>> run-time pruning, once each time a parameter changes, which could be
>> each row.   I think I'll go do that now, and also fix up that
>> forplanner comment you mentioned.
> 
> I've made the change to partkey_datum_from_expr() in master's version
> only. I did this because I had to document that the context argument
> in get_matching_partitions() must have a valid planstate set when the
> given pruning_steps were generated for the executor. It's probably
> unlikely that anything else is using these functions, but still
> thought it was a bad idea to change that in v11. At this stage, I
> don't see any big issues changing that in master.

Agreed about changing that "if" to an "Assert" and doing it only in the
master.  FWIW, I also ended up adding an Assert in the 0002 patch, because
one of the bugs being fixed can only occur in a run-time pruning scenario.
 That means I had to create a version of the patch for v11 without the
Assert; that's the only difference between the attached pg11-0002- and
0002- patches.

Thanks,
Amit

Вложения

В списке pgsql-bugs по дате отправления:

Предыдущее
От: PG Bug reporting form
Дата:
Сообщение: BUG #15805: Problem with lower function for greek sigma (Σ) letter
Следующее
От: Alessio Gennari
Дата:
Сообщение: Re: BUG #15800: Order by random in functions