From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | David Rowley <dgrowleyml(at)gmail(dot)com> |
Cc: | Nathan Bossart <nathandbossart(at)gmail(dot)com>, andrewbille(at)gmail(dot)com, pgsql-bugs(at)lists(dot)postgresql(dot)org |
Subject: | Re: BUG #19086: pg_dump --data-only selects and do not uses index definitions for the dumped tables. |
Date: | 2025-10-15 23:36:20 |
Message-ID: | 1334977.1760571380@sss.pgh.pa.us |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
David Rowley <dgrowleyml(at)gmail(dot)com> writes:
> On Thu, 16 Oct 2025 at 10:55, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>> I wonder how much win could be had by postponing those function calls
>> so that they only act on indexes we're going to dump. It might be
>> a net loss in the default dump-everything case, though.
> Just to make sure I understand correctly, that means run a query in
> dumpIndex() specifically just for the index being dumped to call
> pg_get_indexdef()?
We could do it like that, but it's probably better to keep the
single-query approach. A way that could work is
(1) Drop pg_get_indexdef and pg_get_constraintdef from getIndexes'
initial query.
(2) As we scan the results of that query, build new OID-list
strings listing just the index OIDs and constraint OIDs that
we require definition strings for.
(3) Still within getIndexes, run those queries and insert the
results into the arrays built in step 1.
On its face, this will be slower than doing it all in one query,
at least in the normal case where we need most or all indexes.
But what I'm hoping is that we need at most one of the two
function calls for any one index, depending on whether it's a
constraint or not. That could buy back enough to justify the
extra overhead, perhaps.
(Hmm ... but on the third hand, if we only need one of the
two strings, couldn't we mechanize that by wrapping the
pg_get_indexdef call in CASE WHEN c.contype IS DISTINCT FROM 'x'
?)
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | David Rowley | 2025-10-16 00:35:24 | Re: BUG #19086: pg_dump --data-only selects and do not uses index definitions for the dumped tables. |
Previous Message | PG Bug reporting form | 2025-10-15 23:12:01 | BUG #19089: Mounting Issue |