Re: Performance regression with PostgreSQL 11 and partitioning
David Rowley <david.rowley@2ndquadrant.com>
From: David Rowley <david.rowley@2ndquadrant.com>
To: Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Robert Haas <robertmhaas@gmail.com>, Amit Langote <amitlangote09@gmail.com>,
Thomas Reiss <thomas.reiss@dalibo.com>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2018-06-05T00:20:14Z
Lists: pgsql-hackers
On 5 June 2018 at 01:35, Ashutosh Bapat <ashutosh.bapat@enterprisedb.com> wrote: > I was wondering if we can get rid of append_rel_list altogether. In > your patch, you have saved AppendRelInfos by child_relid. So all the > slots indexed by parent relid are empty. We could place AppendRelInfos > by parent relid. Thus a given AppendRelInfo would be places at two > places, one at the index of child relid and second at the index > pointed by parent relid. That's fine even in case of multilevel > inheritance since an intermediate parent has two relids one as a > parent and other as a child. > > One problem with that we do not know how long the array would be to > start with. But we could keep on repallocing the array to increase its > size. To be honest, the patch was meant as a discussion topic for ways to improve the reported regression in PG11. The patch was put together fairly quickly. I've not really considered what happens in the case where an inherited table has multiple parents. The patch happens to pass regression tests, but I've not checked to see if the existing tests create any tables this way. Perhaps it's okay to change things this way for just partitioned tables and leave inheritance hierarchies alone. -- David Rowley http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
Commits
-
Fix typo in comment
- f5545287dc5f 11.0 landed
-
Allow direct lookups of AppendRelInfo by child relid
- 7d872c91a3f9 11.0 landed
-
Teach adjust_appendrel_attrs(_multilevel) to do multiple translations.
- 480f1f4329f1 11.0 cited