Feedback on table expansion hook (including patch)

From: Erik Nordström <erik(at)timescale(dot)com>
To: pgsql-hackers(at)postgresql(dot)org
Subject: Feedback on table expansion hook (including patch)
Date: 2020-05-07 08:11:14
Message-ID: CACAa4VJ_DG3jHCRo8vvrB+9bT+SQ1szobD3NseFniURQM25HSg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

I am looking for feedback on the possibility of adding a table expansion
hook to PostgreSQL (see attached patch). The motivation for this is to
allow extensions to optimize table expansion. In particular, TimescaleDB
does its own table expansion in order to apply a number of optimizations,
including partition pruning (note that TimescaleDB uses inheritance since
PostgreSQL 9.6 rather than declarative partitioning ). There's currently no
official hook for table expansion, but TimescaleDB has been using the
get_relation_info hook for this purpose. Unfortunately, PostgreSQL 12 broke
this for us since it moved expansion to a later stage where we can no
longer control it without some pretty bad hacks. Given that PostgreSQL 12
changed the expansion state of a table for the get_relation_info hook, we
are thinking about this as a regression and are wondering if this could be
considered against the head of PG 12 or maybe even PG 13 (although we
realize feature freeze has been reached)?

The attached patch is against PostgreSQL master (commit fb544735) and is
about ~10 lines of code. It doesn't change any existing behavior; it only
allows getting control of expand_inherited_rtentry, which would make a huge
difference for TimescaleDB.

Best regards,

Erik
Engineering team lead
Timescale

Attachment Content-Type Size
table-expansion-hook.patch text/x-patch 2.8 KB

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Hans-Jürgen Schönig (PostgreSQL) 2020-05-07 08:26:10 Re: Feedback on table expansion hook (including patch)
Previous Message Fujii Masao 2020-05-07 07:57:00 Re: Should smgrdounlink() be removed?