Re: Performance regression with PostgreSQL 11 and partitioning

Amit Langote <langote_amit_f8@lab.ntt.co.jp>

From: Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>
To: Alvaro Herrera <alvherre@2ndquadrant.com>, Tom Lane <tgl@sss.pgh.pa.us>
Cc: David Rowley <david.rowley@2ndquadrant.com>, Robert Haas <robertmhaas@gmail.com>, Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>, Amit Langote <amitlangote09@gmail.com>, Thomas Reiss <thomas.reiss@dalibo.com>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2018-06-27T07:56:14Z
Lists: pgsql-hackers

Attachments

On 2018/06/26 23:43, Alvaro Herrera wrote:
> On 2018-Jun-25, Tom Lane wrote:
> 
>> Alvaro Herrera <alvherre@2ndquadrant.com> writes:
>>> On 2018-Jun-18, David Rowley wrote:
>>>> I've attached a patch which cleans up my earlier version and moves the
>>>> setup of the append_rel_array into its own function instead of
>>>> sneaking code into setup_simple_rel_arrays(). I've also now updated
>>>> the comment above find_childrel_appendrelinfo(), which is now an
>>>> unused function.
>>
>>> I checked that this patch fixes the originally reported performance
>>> regression.
>>> Unless there are objections, I intend to push this patch tomorrow.
>>
>> If find_childrel_appendrelinfo is now unused, we should remove it.
> 
> Agreed -- thanks for following up.  Pushed that way.

I noticed that there is a typo in a comment, fixed as follows in the
attached patch.

     /*
-     * append_rel_list is the same length as the above arrays, and holds
+     * append_rel_array is the same length as the above arrays, and holds
      * pointers to the corresponding AppendRelInfo entry indexed by
      * child_relid, or NULL if none.  The array itself is not allocated if
      * append_rel_list is empty.

Thanks,
Amit

Commits

  1. Fix typo in comment

  2. Allow direct lookups of AppendRelInfo by child relid

  3. Teach adjust_appendrel_attrs(_multilevel) to do multiple translations.