Re: [HACKERS] advanced partition matching algorithm for partition-wise join

Dmitry Dolgov <9erthalion6@gmail.com>

From: Dmitry Dolgov <9erthalion6@gmail.com>
To: Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>, Antonin Houska <ah@cybertec.at>, Robert Haas <robertmhaas@gmail.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Cc: ashutosh.bapat.oss@gmail.com
Date: 2018-11-25T20:04:29Z
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 →
  1. Suppress unused-variable warning.

  2. Allow partitionwise joins in more cases.

  3. Avoid crash in partitionwise join planning under GEQO.

  4. Disable support for partitionwise joins in problematic cases.

  5. Add plan_cache_mode setting

  6. Add test for partitionwise join involving default partition.

  7. Revise API for partition_rbound_cmp/partition_rbound_datum_cmp.

Attachments

> On Thu, Oct 25, 2018 at 11:19 PM Dmitry Dolgov <9erthalion6@gmail.com> wrote:
>
> Since most of my complaints about the patch were related to code readability,
> I modified it a bit to show more clearly what I have in mind. I haven't changed
> anything about the functionality, just adjusted some parts of it:
>
> * removed some unused arguments (looks like they were added for consistency in
>   all higher level branches, but not all of them were actually in use)
>
> * replaced representation for partition mapping (instead of int arrays there is
>   a structure, that allows to replace 0/1 with more meaningful from/to)
>
> * tried to make naming a bit more consistent - so, if a function doesn't
>   explicitely say anything about outer/inner, we have partmap1/partmap2,
>   otherwise outermap/innermap. I don't really like this style with
>   partmap1/partmap2 or index1/index2, but it seems consistent with the rest of
>   the code in partbounds.c
>
> * removed some state representation flags, e.g. merged - instead, if there is a
>   situation when we can't merge, functions will return NULL right away
>
> * removed questionable debugging statement

I've noticed, that this patch set is outdated, so here is the rebased version.