On Wed, 18 Jan 2023 at 15:25, Justin Pryzby <pry...@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