Re: BUG #19086: pg_dump --data-only selects and do not uses index definitions for the dumped tables.
От | Tom Lane |
---|---|
Тема | Re: BUG #19086: pg_dump --data-only selects and do not uses index definitions for the dumped tables. |
Дата | |
Msg-id | 1334977.1760571380@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: BUG #19086: pg_dump --data-only selects and do not uses index definitions for the dumped tables. (David Rowley <dgrowleyml@gmail.com>) |
Ответы |
Re: BUG #19086: pg_dump --data-only selects and do not uses index definitions for the dumped tables.
|
Список | pgsql-bugs |
David Rowley <dgrowleyml@gmail.com> writes: > On Thu, 16 Oct 2025 at 10:55, Tom Lane <tgl@sss.pgh.pa.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
В списке pgsql-bugs по дате отправления: