Re: Progress report of CREATE INDEX for nested partitioned tables
Dean Rasheed <dean.a.rasheed@gmail.com>
From: Dean Rasheed <dean.a.rasheed@gmail.com>
To: Justin Pryzby <pryzby@telsasoft.com>
Cc: Tomas Vondra <tomas.vondra@enterprisedb.com>, Ilya Gladyshev <ilya.v.gladyshev@gmail.com>,
pgsql-hackers@lists.postgresql.org, Alvaro Herrera <alvherre@alvh.no-ip.org>
Date: 2023-01-25T09:51:03Z
Lists: pgsql-hackers
On Wed, 18 Jan 2023 at 15:25, Justin Pryzby <pryzby@telsasoft.com> wrote: > > TBH, I think the best approach is what I did in: > 0001-report-top-parent-progress-for-CREATE-INDEX.txt > > That's a minimal patch, ideal for backpatching. > > ..which defines/clarifies that the progress reporting is only for > *direct* children. That avoids the need to change any data structures, > and it's what was probably intended by the original patch, which doesn't > seem to have considered intermediate partitioned tables. > > I think it'd be fine to re-define that in some future release, to allow > showing indirect children (probably only "leaves", and not intermediate > partitioned tables). Or "total_bytes" or other global progress. > Hmm. My expectation as a user is that partitions_total includes both direct and indirect (leaf) child partitions, that it is set just once at the start of the process, and that partitions_done increases from zero to partitions_total as the index-build proceeds. I think that should be achievable with a minimally invasive patch that doesn't change any data structures. I agree with all the review comments Tomas posted. In particular, this shouldn't need any changes to IndexStmt. I think the best approach would be to just add a new function to backend_progress.c that offsets a specified progress parameter by a specified amount, so that you can just increment partitions_done by one or more, at the appropriate points. Regards, Dean
Commits
-
Fix CREATE INDEX progress reporting for multi-level partitioning.
- 27f5c712b2c5 16.0 landed