1. Makecheck fails currently as view definition of expected rules.out does not reflect latest changes in progress metrics numbering.
2. + <entry> + When creating an index on a partitioned, this column is set to the + total number of partitions on which the index is to be created. + </entry> + </row> + <row> + <entry><structfield>partitions_done</structfield></entry> + <entry><type>bigint</type></entry> + <entry> + When creating an index on a partitioned, this column is set to the
I think there is a typo here 's/partitioned/partitioned table/'
3. + if (hscan->rs_base.rs_parallel != NULL) + { + ParallelBlockTableScanDesc bpscan; + + bpscan = (ParallelBlockTableScanDesc) hscan->rs_base.rs_parallel; + startblock = bpscan->phs_startblock; + } + else + startblock = hscan->rs_startblock; + + /* + * Might have wrapped around the end of the relation, if startblock was + * not zero. + */ + if (hscan->rs_cblock > startblock) + blocks_done = hscan->rs_cblock - startblock; + else + blocks_done = hscan->rs_nblocks - startblock + + hscan->rs_cblock; + + return blocks_done;
I think parallel scan equivalent bpscan->phs_nblocks along with hscan->rs_nblocks should be used similar to startblock computation above.
> So, CLUSTER and ALTER TABLE rewrites only do non-concurrent index > builds; and REINDEX can reuse pretty much the same wait-for metrics > columns as CIC. So I think it's okay if I move only the metrics that > conflict for index_build.
The attached version does it that way. I had to enlarge the param set a bit more. (I suspect those extra columns will be useful to reindex.) Also, rebased for recent conflicting changes.
I think we should consider a new column of an array type, where we could put things like the list of PIDs to be waited for, the list of OIDs of index to rebuild, or the list of partitions to build the index on.