agora inbox for [email protected]help / color / mirror / Atom feed
Doc correction 1926+ messages / 2 participants [nested] [flat]
* Doc correction @ 2005-03-03 04:36 Christopher Kings-Lynne <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Christopher Kings-Lynne @ 2005-03-03 04:36 UTC (permalink / raw) To: pgsql-hackers In the CTID docs: http://www.postgresql.org/docs/8.0/interactive/ddl-system-columns.html It mentions that VACUUM FULL will change the ctid, but I think it should mention that CLUSTER will as well. Are there any other commands that will? Mention UPDATE? We occasionally get people wanting to use it for various unusual applications in IRC. Chris ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 1926+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 1926+ messages in thread
end of thread, other threads:[~2026-04-03 19:08 UTC | newest] Thread overview: 1926+ messages (download: mbox mbox.gz follow: Atom feed) -- links below jump to the message on this page -- 2005-03-03 04:36 Doc correction Christopher Kings-Lynne <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <[email protected]>
This inbox is served by agora; see mirroring instructions for how to clone and mirror all data and code used for this inbox