public inbox for [email protected]
help / color / mirror / Atom feedFrom: Kirill Reshke <[email protected]>
To: Alexander Korotkov <[email protected]>
Cc: Matheus Alcantara <[email protected]>
Cc: Dmitry Koval <[email protected]>
Cc: pgsql-hackers <[email protected]>
Subject: Re: MERGE PARTITIONS and DEPENDS ON EXTENSION.
Date: Wed, 22 Apr 2026 15:48:18 +0500
Message-ID: <CALdSSPi9GE8jnLCA4aUP2F5_ax6W9Ccfh_ja0iY6wkX2uUyzDw@mail.gmail.com> (raw)
In-Reply-To: <CAPpHfdt66RjWZnUakTZKk6eQ=xVrscfp9HAg8xXnxjnsgHuF-g@mail.gmail.com>
References: <CALdSSPjXtzGM7Uk4fWRwRMXcCczge5uNirPQcYCHKPAWPkp9iQ@mail.gmail.com>
<[email protected]>
<[email protected]>
<[email protected]>
<[email protected]>
<CAPpHfdvQSmRAHu1BRTVcvgons_Smt0QW+mLP4np=QxG==WyFAg@mail.gmail.com>
<[email protected]>
<CAPpHfds2NsGvpi4fK-xBDk9S=ZY8FEsG-a3z7m_cRSJhn5GKvQ@mail.gmail.com>
<[email protected]>
<CAPpHfdt66RjWZnUakTZKk6eQ=xVrscfp9HAg8xXnxjnsgHuF-g@mail.gmail.com>
On Wed, 22 Apr 2026 at 00:35, Alexander Korotkov <[email protected]> wrote:
>
> On Tue, Apr 21, 2026 at 10:23 PM Matheus Alcantara
> <[email protected]> wrote:
> > On 21/04/26 12:57, Alexander Korotkov wrote:
> > > I've spotted the following things in this patch.
> > > 1) The equality of dependencies is not fully checked. We only check
> > > that for each new dependency, we have the same for previous partition,
> > > but not vise versa.
> > > 2) The complexity of dependency checking is O(n^2).
> > > 3) Usage of citext and other extensions in src/test/regress where they
> > > might be not available.
> > >
> >
> > Oops, I forgot to replace the citext extension on split partition tests.
> >
> > > I've revised the patch.
> > > 1) collectPartitionIndexExtDeps() is rewritten(). Now it works in
> > > three phases: collect, sort, compare. The comparison phase requires
> > > strict equivalence of dependencies and doesn't depend on the order.
> > > The complexity is now O(n * log(n)), which I think is acceptable.
> > > 2) PartitionIndexExtDepEntry struct now have indexOid. So, on
> > > conflict error contains both partition index names.
> > > 3) Tests moved to
> > > src/test/modules/test_extensions/sql/test_extdepend.sql where
> > > test_ext3/test_ext5 extensions are available.
> > > 4) More tests for different scenarios.
> > >
> > > Could you, please, review this changes?
> > >
> >
> > I think that you miss to include the patch?
>
> Yep, here it is.
>
> ------
> Regards,
> Alexander Korotkov
> Supabase
Hi!
So, we only transfer dependencies on partitioned indexes when
SPLIT/MERGE partitions, not tables themselves (this is what this
thread started from).
I think this is correct.
Some minor comments:
> +-- Sanity check: the extension can't be dropped while dependencies exist.
>+DROP EXTENSION test_ext3;
This exercises something that already works on HEAD (note this is DROP
before first MERGE partition call ). Do we really need this?
>
> +-- An index created directly on a partition has no parent in the partitioned
> +-- index tree; merge must ignore such indexes (they disappear with the old
> +-- partition).
> +CREATE INDEX part_extdep_3_extra_idx ON part_extdep_3(x);
> +ALTER TABLE part_extdep MERGE PARTITIONS (part_extdep_merged, part_extdep_3)
> + INTO part_extdep_merged2;
> +SELECT relname FROM pg_class
> +WHERE relname LIKE 'part_extdep_merged2%idx' ORDER BY relname;
Looks like this test is also redundant? This does not test new DEPENDS ON logic.
Otherwise LGTM
--
Best regards,
Kirill Reshke
view thread (21+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected], [email protected], [email protected], [email protected]
Subject: Re: MERGE PARTITIONS and DEPENDS ON EXTENSION.
In-Reply-To: <CALdSSPi9GE8jnLCA4aUP2F5_ax6W9Ccfh_ja0iY6wkX2uUyzDw@mail.gmail.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox