Re: Speeding up INSERTs and UPDATEs to partitioned tables

From: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
To: Amit Langote <amitlangote09(at)gmail(dot)com>
Cc: Amit Langote <Langote_Amit_f8(at)lab(dot)ntt(dot)co(dot)jp>, David Rowley <david(dot)rowley(at)2ndquadrant(dot)com>, Jesper Pedersen <jesper(dot)pedersen(at)redhat(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, kato-sho(at)jp(dot)fujitsu(dot)com
Subject: Re: Speeding up INSERTs and UPDATEs to partitioned tables
Date: 2018-11-16 15:14:06
Message-ID: 20181116151406.5cdamjr53fqbzrob@alvherre.pgsql
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

On 2018-Nov-16, Alvaro Herrera wrote:

> One thing I don't quite like is the inconsistency in handling memory
> context switches in the various function allocating stuff. It seems
> rather haphazard. I'd rather have a memcxt member in
> PartitionTupleRouting, which is set when the struct is created, and then
> have all the other functions allocating stuff use that one.

So while researching this I finally realized that there was a "lexical
disconnect" between setting a ResultRelInfo's ri_PartitionInfo
struct/pointer and adding it to the PartitionTupleRoute arrays.
However, if you think about it, these things are one and the same, so we
don't need to do them separately; just merge the new function I wrote
into the existing ExecInitRoutingInfo(). Patch attached.

(This version also rebases across Andres' recent conflicting
TupleTableSlot changes.)

I'll now see about the commit message and push shortly.

Álvaro Herrera
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Attachment Content-Type Size
v19-Speed-up-INSERT-and-UPDATE-on-partitioned-tables.patch text/x-diff 69.9 KB

In response to


Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2018-11-16 15:41:29 Re: Convert MAX_SAOP_ARRAY_SIZE to new guc
Previous Message Tom Lane 2018-11-16 15:11:19 Re: Convert MAX_SAOP_ARRAY_SIZE to new guc